// //写SD2405允许程序 // void WriteTimeOn(void) { I2CStart(); I2CSendByte(0x64); I2CWaitAck(); I2CSendByte(0x10); //设置写地址10H I2CWaitAck(); I2CSendByte(0x80); //置WRTC1=1 I2CWaitAck(); I2CStop(); I2CStart(); I2CSendByte(0x64); I2CWaitAck(); I2CSendByte(0x0F); //设置写地址0FH I2CWaitAck(); I2CSendByte(0x84); //置WRTC2,WRTC3=1 I2CWaitAck(); I2CStop(); } // //写SD2405禁止程序 // void WriteTimeOff(void) { I2CStart(); I2CSendByte(0x64); I2CWaitAck(); I2CSendByte(0x0F); //设置写地址0FH I2CWaitAck(); I2CSendByte(0x0) ; //置WRTC2,WRTC3=0 I2CWaitAck(); I2CStart(); I2CSendByte(0x64); I2CWaitAck(); I2CSendByte(0x10); //设置写地址10H I2CWaitAck(); I2CSendByte(0x0) ; //置WRTC1=0(10H地址) I2CWaitAck(); I2CStop(); } //设置SD2405中断程序(设置报警时间:小时+分钟) void WriteALARM(uint8_t hour , uint8_t minute) { WriteTimeOn(); //写SD2405允许 I2CStart(); I2CSendByte(0x64); //发送SD2400写寄存器命令 I2CWaitAck(); I2CSendByte(0x08); //发送起始地址(0x08=分钟报警寄存器) I2CWaitAck(); I2CSendByte(HEXtoBCD(minute)); //分钟 I2CWaitAck(); I2CStop(); I2CStart(); I2CSendByte(0x64); //发送SD2400写寄存器命令 I2CWaitAck(); I2CSendByte(0x09); //发送起始地址(0x09=小时报警寄存器) I2CWaitAck(); I2CSendByte(HEXtoBCD(hour)); //小时 I2CWaitAck(); I2CStop(); I2CStart(); I2CSendByte(0x64); //发送SD2400写寄存器命令 I2CWaitAck(); I2CSendByte(0x0E); //发送起始地址(0x0E=报警允许寄存器) I2CWaitAck(); I2CSendByte(0x06); //设置报警允许(使能小时、分钟报警) I2CWaitAck(); I2CStop(); I2CStart(); I2CSendByte(0x64); //发送SD2400写寄存器命令 I2CWaitAck(); I2CSendByte(0x10); //发送起始地址(0x10=CTR2控制寄存器) I2CWaitAck(); I2CSendByte(0x92); //设置INT中断选通(INTS1,INTS0),及报警中断总允许位(INTAE) I2CWaitAck(); I2CStop(); WriteTimeOff(); //写SD2405禁止 } //关闭报警中断 void ClrALARM(void) { WriteTimeOn(); //写SD2405允许 I2CStart(); I2CSendByte(0x64); //发送SD2400写寄存器命令 I2CWaitAck(); I2CSendByte(0x10); //发送起始地址 I2CWaitAck(); I2CSendByte(0x90); //清报警中断总允许位(INTAE) I2CWaitAck(); I2CStop(); WriteTimeOff(); //写SD2405禁止 }
收藏0 举报
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号