-
大小: 2.57MB文件類型: .zip金幣: 2下載: 0 次發布日期: 2023-09-20
- 語言: 其他
- 標簽: IIC總線??MC9S12XEP100??uCOS-II??
資源簡介
此為本人寫的MC9S12XEP100的IIC模塊的硬件驅動程序。具體參照博文https://blog.csdn.net/lin_strong/article/details/80327959,如后續有更新代碼或勘誤,請直接到博文里查閱,好像CSDN不允許更新/刪除資源。其中包含了驅動代碼以及示例代碼,示例代碼包括裸奔程序的示例以及uCOS-II下的示例。
注意,代碼中的裸奔程序的那個示例直接運行時會跑飛,需要在IIC.h文件中的void near IIC_ISR(void);這個聲明前加一個interrupt才行。 在運行基于uCOS的那個示例時又得把這個interrupt去掉才行。
暫時沒有找到能夠很方便地切換中斷聲明的方法。

代碼片段和文件信息
/*
*******************************************************************************************
*
*
*??????????????????????????????????IIC?SUPPORT?PACKAGE
*????????????????????????????????Freescale?MC9S12XEP100
*???????????????????????????飛思卡爾???MC9S12XEP100??IIC支持包
*
*?File?:?IIC.c
*?By???:?Lin?Shijun(http://blog.csdn.net/lin_strong)
*?Date:??2018/05/15
*?version:?V1.1
*?History:?2018/05/07??V1.0???the?prototype
*??????????2018/05/15??V1.1???add?the?slave?part?of?IIC.
*?????????????????????????????add?the?functions?register?so?user?can?change?the?behaviour
*?????????????????????????????of?the?module.
*?NOTE(s):??1.?don‘t?support?10-bit?address?for?now.
*???????????2.?this?module?is?ISR-drived?so?you?must?point?the?IIC_ISR?to?the?corresponding
*??????????????address?and?enable?interrupt.
*???????????3.?note?that?the?funcitons?in?this?module?is?not?thread-safe.
*********************************************************************************************
*/
/*
*********************************************************************************************************
*???????????????????????????????????????INCLUDES
*********************************************************************************************************
*/
#include?
#include?“IIC.h“
/*
*********************************************************************************************************
*?????????????????????????????????????????CONSTANT
*********************************************************************************************************
*/
#define?ISR_ERR_NULL????0?????//?正常處理完畢
#define?ISR_SENDOK??????1
#define?ISR_ERR_NOACK???2
#define?ISR_RECVOK??????3
#define?ISR_ERR_IBAL????4
/*
*********************************************************************************************************
*??????????????????????????????????LOCAL?FUNCTION?DECLARATION
*********************************************************************************************************
*/
//?發起啟動條件,默認當前為從機模式,如總線忙則會返回錯誤,后面需要軟件查看IBIF來看是否成功
//?CalAddr:主叫地址(D0:R/W)
static?unsigned?char?_IIC_StartCondtion(unsigned?char?CalAddr);
//?默認的等待函數無限等待
static?unsigned?char?_IIC_Wait(unsigned?long?wCnt){?return?TRUE;}
static?unsigned?char?_sem;
//?默認使用的信號量函數
static?unsigned?char?_IIC_SemPend(void){?
??while(_sem?==?0);?//?等待中斷發來結果
??_sem--;
??return?TRUE;
}
static?void?_IIC_SemPost(void){?_sem++;}
static?void?_IIC_SemReset(void){?_sem?=?0;}
/*
*********************************************************************************************************
*??????????????????????????????????LOCAL?VARIABLE
*********************************************************************************************************
*/
static?unsigned?char*?pTxRxBuf;?//?指向主機使用的緩沖區
static?unsigned?short?TxCnt;????//?等待發送的字節個數
#define?_LastByteTransmitted()?(TxCnt?==?0)
#define?_SendNextByte()????????{TxCnt--;?IIC0_IBDR?=?*pTxRxBuf++;}?????//?發送下一個字節
static?unsigned?short
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????14030??2018-05-15?20:28??IIC.c
?????文件????????6768??2018-05-15?20:26??IIC.h
?????目錄???????????0??2018-05-15?20:18??IIC_Comm\
?????目錄???????????0??2018-05-15?20:18??IIC_Comm\bin\
?????文件??????417185??2018-05-15?20:18??IIC_Comm\bin\Project.abs
?????文件????????2320??2018-05-15?20:18??IIC_Comm\bin\Project.abs.glo
?????文件????????2306??2018-05-15?20:18??IIC_Comm\bin\Project.abs.s19
?????文件??????248112??2018-05-15?20:18??IIC_Comm\bin\Project.map
?????文件?????????855??2018-05-15?12:53??IIC_Comm\C_Layout.hwl
?????目錄???????????0??2018-05-15?12:53??IIC_Comm\cmd\
?????文件????????1514??2018-05-15?12:53??IIC_Comm\cmd\TBDML_Erase_unsecure_hcs12xe.cmd
?????文件??????????59??2018-05-15?12:53??IIC_Comm\cmd\TBDML_Postload.cmd
?????文件??????????60??2018-05-15?12:53??IIC_Comm\cmd\TBDML_Preload.cmd
?????文件??????????60??2018-05-15?12:53??IIC_Comm\cmd\TBDML_Reset.cmd
?????文件??????????59??2018-05-15?12:53??IIC_Comm\cmd\TBDML_Startup.cmd
?????文件??????????77??2018-05-15?12:53??IIC_Comm\cmd\TBDML_Vppoff.cmd
?????文件??????????78??2018-05-15?12:53??IIC_Comm\cmd\TBDML_Vppon.cmd
?????文件?????????161??2004-06-15?15:46??IIC_Comm\Default.mem
?????文件???????59809??2018-05-15?14:32??IIC_Comm\IIC_Comm.mcp
?????目錄???????????0??2018-05-15?12:53??IIC_Comm\IIC_Comm_Data\
?????文件????????4313??2018-05-15?20:18??IIC_Comm\IIC_Comm_Data\CWSettingsWindows.stg
?????目錄???????????0??2018-05-15?12:53??IIC_Comm\IIC_Comm_Data\Standard\
?????目錄???????????0??2018-05-15?16:01??IIC_Comm\IIC_Comm_Data\Standard\ob
?????文件???????14293??2018-05-15?12:53??IIC_Comm\IIC_Comm_Data\Standard\ob
?????文件???????16840??2018-05-15?20:18??IIC_Comm\IIC_Comm_Data\Standard\ob
?????文件???????13384??2018-05-15?20:18??IIC_Comm\IIC_Comm_Data\Standard\ob
?????文件??????415520??2018-05-15?12:53??IIC_Comm\IIC_Comm_Data\Standard\ob
?????文件????????5921??2018-05-15?12:53??IIC_Comm\IIC_Comm_Data\Standard\ob
?????文件?????1577897??2018-05-15?20:18??IIC_Comm\IIC_Comm_Data\Standard\TargetDataWindows.tdt
?????目錄???????????0??2018-05-15?12:53??IIC_Comm\prm\
?????文件???????10141??2018-05-15?12:53??IIC_Comm\prm\burner.bbl
............此處省略152個文件信息
評論
共有 條評論