请问CC1310的RTC CH0和CH1的compare定时器事件是否存在冲突,如下是我的在CC1310_LAUNCHXL开发板上跑的测试代码,我用了RTC CH1的compare定时器,已经实现了红灯一秒闪烁,但是发现绿灯没有1秒闪烁,程序好像一直卡在INT_AON_RTC_COMB的中断回调函数里面出不来,这是什么原因呢?是程序正常运行的时候开了RTC CH0的compare,所以我现在用RTC CH1的compare,影响到程序正常运行了吗?
//rtc channel1 compare事件中断回调函数
void rtc_ch1_interrupt_handler(void)
{
//清除事件标志
AONRTCEventClear(AON_RTC_CH1);
IntPendClear(INT_AON_RTC_COMB);
//开发板绿灯引脚电平转换
GPIO_toggleDio(IOID_6);
//重新生成1秒事件
AONRTCCompareValueSet(AON_RTC_CH1, (AONRTCCurrentCompareValueGet() + FACTOR_SEC_TO_COMP_VAL_FORMAT));
}
void rtc_ch1_compare_timer_init(void)
{
AONRTCChannelEnable(AON_RTC_CH1); //启用通道1
AONRTCModeCh1Set(AON_RTC_MODE_CH1_COMPARE); //启用CH1捕获模式
AONRTCCompareValueSet(AON_RTC_CH1, FACTOR_SEC_TO_COMP_VAL_FORMAT); // 1秒后生成事件
AONRTCCombinedEventConfig(AON_RTC_CH1);
IntRegister(INT_AON_RTC_COMB, rtc_ch1_interrupt_handler);
IntEnable(INT_AON_RTC_COMB); //开启compare事件中断
}
int main(void)
{
//CC1310 Nortos启动
Power_init();
PIN_init(BoardGpioInitTable);
NoRTOS_start();
//开发板红灯引脚初始化为输出低
GPIO_setOutputEnableDio(IOID_6, GPIO_OUTPUT_ENABLE);
GPIO_writeDio(IOID_6, PIN_LOW);
//开发板绿灯引脚初始化为输出低
GPIO_setOutputEnableDio(IOID_7, GPIO_OUTPUT_ENABLE);
GPIO_writeDio(IOID_7, PIN_LOW);
//初始化RTC channel 1 compare事件
rtc_ch1_compare_timer_init();
while(1)
{
//绿灯间隔一秒闪烁
GPIO_toggleDio(IOID_7);
sleep(1);
}
}