資源簡介
8025T IIC驅動代碼,可以參考一下,IIC驅動的編寫及8025T的操作方式

代碼片段和文件信息
#include?“config.h“
//#include????“p33FJ256MC710.h“
/***********************************************************************
**??Time: liwenjin?2012.10
**??Function:讀取rx8025n內部寄存器
**??Input:
**??Output:
**??Attention
***********************************************************************/
UINT16?rx8025_read_regs(BYTE?Add?BYTE?ReadDatatLengthBYTE?*Data)
{
????BYTE?ErrorCode;
// Add=Add<<4;//地址(高4位)加傳送模式00(低四位)
IdleI2C(); //Wait?for?bus?Idle
StartI2C(); //Generate?Start?condition
WriteI2C(0x64); //發送寫控制命令0x64
IdleI2C(); //Wait?for?bus?Idle
????ErrorCode?=?ACKStatus(); //Return?ACK?Status
WriteI2C(Add); //Send?High?Address
IdleI2C(); //Wait?for?bus?Idle
ErrorCode?=?ACKStatus(); //Return?ACK?Status
RestartI2C(); //Generate?Restart
WriteI2C(0x65); //發送讀控制命令
IdleI2C(); //Wait?for?bus?Idle
ErrorCode?=?ACKStatus(); //Return?ACK?Status
getsI2C(DataReadDatatLength); //Read?Length?number?of?bytes?to?Data
NotAckI2C(); //send?Not?Ack
StopI2C(); //Send?Stop?Condition
return(ErrorCode);
}
?
/***********************************************************************
**??Time: liwenjin?2012.10
**??Function:寫rx8025n內部寄存器
**??Input: ControlByte?Add?*wrptr.
**??Output: None
**??Attention:先發命令地址,再發地址,最后發數據
***********************************************************************/
?
INT?rx8025_write_regs(BYTE?AddBYTE?WriteDataLengthBYTE?*wrptr)
{
BYTE?ErrorCode;
// Add=Add<<4;//地址(高4位)加傳送模式00(低四位)
IdleI2C(); //wait?for?bus?Idle
StartI2C(); //Generate?Start?condition
WriteI2C(0x64); ?? ????????//send?controlbyte?for?a?write,0x64h
IdleI2C(); //wait?for?bus?Idle
ErrorCode?=?ACKStatus(); //Return?ACK?Status
WriteI2C(Add); //send?low?address
IdleI2C(); //wait?for?bus?Idle
ErrorCode?=?ACKStatus(); //Return?ACK?Status
putstringI2C(wrptrWriteDataLength); //send?data
IdleI2C(); //wait?for?bus?Idle
StopI2C(); //Generate?Stop
return(ErrorCode);
}
/***********************************************************************
**??Time: liwenjin?2012.10
**??Function:從8025N獲取時間
**??Input:
**??Output: None
**??Attention:
***********************************************************************/?
BYTE?rx8025_get_time(strTIME?*get_time)
{
????BYTE?date[7];
????BYTE?err;
????err?=?rx8025_read_regs(RX8025_REG_SEC7date);
????if?(!err)return?err;?//err為0時表示錯誤,err=1表示正常接收
????get_time->cSecond?=(BYTE)bcd2bin(date[RX8025_REG_SEC]&0x7f);
????get_time->cMinute?=(BYTE)bcd2bin(date[RX8025_REG_MIN]&0x7f);
????get_time->cHour?=?bcd2bin(date[RX8025_REG_HOUR]?&?0x3f);??
????get_time->cDay?=?bcd2bin(date[RX8025_REG_MDAY]?&?0x3f);
????get_time->cMonth=?bcd2bin(date[RX8025_REG_MONTH]?&?0x1f);
????get_time->sYear=?bcd2bin(date[RX8025_REG_YEAR]);
?}
/***********************************************************************
**??Time: liwenjin?2012.10
**??Function:校正8025N的時間
**??Input:
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????14676??2013-05-22?10:54??rx8025.c
?????文件???????1916??2013-04-29?21:16??rx8025.h
-----------?---------??----------?-----??----
????????????????16592????????????????????2
評論
共有 條評論