AC7811---Timer

发布时间:2024年01月18日

1.Timer配置

timer0,timer1是32位计数器,而其他计数器只有16位,则timerConfig0.loadValue的值应合理设置,不应溢出

  • 在48M的总线频率下,timer单独使用的话,timer0~1,最大loadValue为4294967295;其他timer最大loadValue为65535,计数范围较小
  • 在链接模式中,timer0是不能链接到任何其他timer上面的
#define CLK         (48000000)
#define Delay1s   (CLK-1)		
void Timer_Init(void)
{
    TIMER_ConfigType  timerConfig0 = {0};   
    /* configure TIMER channel 0, only enable timer */
    timerConfig0.loadValue      = Delay1s;  ///1s timeout 
    timerConfig0.interruptEn      = 1;        //中断使能
    timerConfig0.linkMode        = 0;         //禁能链接 
    timerConfig0.timerEn          = 1;        //使能TIMER0
  
    TIMER_SetCallback(TIMER0, TIM0_Task);
    TIMER_Init(TIMER0, &timerConfig0);    //TIMER配置初始化
}


void TIM0_Task(uint8_t timerIndex)
{
    if (TIMER_GetIntFlag(TIMER0))
    {
        LED_TOGGLE;
        TIMER_ClrIntFlag(TIMER0); //清中断标志   
        TIMER_Disable(TIMER0);   
    }
}
文章来源:https://blog.csdn.net/liuyuedechuchu/article/details/135676922
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。