• 大小: 4KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: 其他
  • 标签: 8025T  IIC  

资源简介

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


评论

共有 条评论