RTC最大计数是0xA8C00000,换算下来正好是24h,他计数到最大值就会自动从0开始
这个地方需要加个溢出判断
void RTC_TRIGFunCfg( UINT32 cyc )
{
UINT32 t;
t = RTC_GetCycle32k() + cyc;
if(t> 0xA8C00000)
{
t-= 0xA8C00000;
}
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2;
SAFEOPERATE;
R32_RTC_TRIG = t;
R8_RTC_MODE_CTRL |= RB_RTC_TRIG_EN;
R8_SAFE_ACCESS_SIG = 0;
}
RTC最大计数是0xA8C00000,换算下来正好是24h,他计数到最大值就会自动从0开始
这个地方需要加个溢出判断
void RTC_TRIGFunCfg( UINT32 cyc )
{
UINT32 t;
t = RTC_GetCycle32k() + cyc;
if(t> 0xA8C00000)
{
t-= 0xA8C00000;
}
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2;
SAFEOPERATE;
R32_RTC_TRIG = t;
R8_RTC_MODE_CTRL |= RB_RTC_TRIG_EN;
R8_SAFE_ACCESS_SIG = 0;
}
举报