定时器初始化,在MAIN中调用,可是只跑一次,不知问题出在哪,请大家帮看看:
初始化函数:
void sub_system_tcd0_init( void )
{
TCD0_CTRLFCLR = 0x0F; // 1. 重启 TCD0
TCD0_CTRLFSET = 0x08; //
TCD0_CTRLFCLR = 0x0F; //
asm volatile("CLI"); //
TCD0_PER = 0x1200; // 2. TOP 设置, 0x1200 针对 29.4912MHz/8 为 2ms 定时
TCD0_CNT = 0x1200; // 3. 计数初值 初始化
asm volatile("SEI"); //
TCD0_INTCTRLA = 0x01; // 4. TCC0 溢出中断开启,优先级低
TCD0_CTRLA = 0x04; // 5. 定时器时钟,系统时钟 8 分频
PMIC_CTRL |= 0x01; // 6. 开启低优先级中断
}
中断函数:
ISR( TCD0_OVF_INT )
{
/*
if( key_scan_delay != 0 ) { //
key_scan_delay--; //
} //
if( uartc1_delay != 0 ) { //
uartc1_delay--; //
} //
if( uartc0_send_cmd_delay != 0 ) { //
uartc0_send_cmd_delay--; //
} //
if( dau_online_delay != 0 ) { //
dau_online_delay--; //
} //
else { //
asm volatile("CLI"); // DAU 模块在线检测
if( dau_online_check != 0 ) { //
dau_online_check--; //
} //
asm volatile("SEI"); //
}
*/
ext_dau_power_flag++; //
}
mian:
while( 1 ) { //
if (5 == ext_dau_power_flag)
{
ext_dau_power_flag = 0;
sub_uartc1_write_send_buff(read_dau_addr_cmd, 2); //
}
} //
串口打出来只有一次:
不知问题在哪里。 |