RX8025 RTC闹钟唤醒Alarm_D的初始化

用完INTA周期输出又要求隔几个小时触发唤醒MCU,只好使用Alarm_D闹钟唤醒,为了避免INTA中期输出和Alarm_D输出冲突,关闭INTA周期输出,现对Alarm_D初始化做一个记录。方便以后查看。

//产生时分报警INTA 输出
static void SetAlarm_D(SYSCLOCKALARMVALUEINFO stClockAlarmSetValue)
{
u8  nRegInfo , nCount = 0 ;

//地址写入是0X0E,实际在函数内部的地址为0XE0
while(!(Rx8025_ReadProc(0x0E, 1, &nRegInfo)) && nCount ++ < 50);


//设置时间
nCount = 0;

//地址写入是0X0B,实际在函数内部的地址为0XB0
while(!(Rx8025_WirteProc(0x0B, SysDecToBCDProc((u8)stClockAlarmSetValue.nMinute))) && nCount ++ < 50);
nCount = 0;
while(!(Rx8025_WirteProc(0x0C, SysDecToBCDProc((u8)stClockAlarmSetValue.nHour))) && nCount ++ < 50);


//设置DAFG位  不需要设置
//Rx8025_ReadProc(0x0F, 1, &nRegInfo);
//nRegInfo |=0X02;
//Rx8025_ReadProc(0x0F, 1, &nRegInfo);


//开启Alarm_D
nCount = 0;
nRegInfo |=0x40;
while(!(Rx8025_WirteProc(0x0E, nRegInfo)) && nCount ++ < 50);
}

为了可靠设置参数,做了一下重复判断。按照说明书要求(1)先关闭Alarm_D(初始化RX8025时已关闭)(2)设置小时和分钟(3)打开Alarm_D(置位DALE)。

中文版说明书翻译不是很准确。建议对比英文版。

PS:Alarm_D唤醒后不要忘记清楚DAFG位,清除后下一次才能继续唤醒,这一点和INTA电平周期唤醒一样,都是要清除相应的位。。。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值