【MSPM0G3519 系列】定时器级联时钟输入测频率【进阶版】

引言

考虑到前一篇文章 【MSPM0G3519系列】外部时钟输入测频 测频率的方式进入中断的频率过高,会影响程序主要代码的运行,故这次采用了更进一步的方法去测量:定时器级联采集外部信号时钟。话不多说,尽快开始。

配置

注意:
1.以下图中即完整级联配置,两个级联无需打开中断!
2. 主定时器比较触发配置为外部时钟输入触发,从定时器设置为事件触发

原因:两个65536的定时器级联,从\(2^{16}\)变成了\(2^{32}\),计数次数不用再担心溢出。
定时器级联计数方式:主定时器计数达到65535,从定时器计数加1,直到两个定时器达到65535。

主定时器配置

image

从定时器配置

image

捕获定时器配置

捕获定时器随便配置个1s或2s或0.5s中断即可,但是要注意在测出的频率上×2或÷2。
image

程序

点击查看代码
void TIMER_1_INST_IRQHandler(void)
{
    switch (DL_TimerA_getPendingInterrupt(TIMER_1_INST)) {
        case DL_TIMERA_IIDX_ZERO:
            DL_TimerA_getTimerCount(COMPARE_0_INST);
            freq = DL_TimerA_getTimerCount(COMPARE_0_INST) + DL_TimerA_getTimerCount(COMPARE_1_INST) * 65536;
            // freq = 999;  /* 测试频率 */
            // printf("freq = %d Hz\r\n\r\n", freq);
            timer_measure_freq_end_flag = true;
            DL_TimerA_setTimerCount(COMPARE_1_INST, 0);
            DL_TimerA_setTimerCount(COMPARE_0_INST, 0);
            break;
        default:
            break;
    }
}

定时器级联优势

  1. 可以获得更大的计数次数,不用担心溢出的问题。
  2. 使测得更准的外部时钟频率。
  3. 中断频率大大缩短,不影响主要程序的运行。

博客导航

博客导航

posted @ 2025-07-17 17:55  膝盖中箭卫兵  阅读(83)  评论(0)    收藏  举报
ORCID iD icon https://orcid.org/0000-0001-5102-772X