EFM32小记----定时器配置为捕获、比较以及PWM输出注意事项

来源:互联网 发布:动态主题软件 编辑:程序博客网 时间:2024/05/17 02:16

         定时器用做捕获输入、比较输出,或者是PWM波形输出,应该是任何一款单片机最为常用的功能之一了,对于EFM32的单片机也同样如此,下面我们看看具体如何配置:

首先,相信接触过的都知道下面这个软件了吧,这里不做介绍。


在API Documentation里面我们可以非常容易的找到TIMER_Init_TypeDef这个结构体,并且对其中的字段进行初始化操作,主要操作时钟的分频数,计数模式以及上升沿下降沿的动作,然后,我们可以调用TIMER_Init()函数初始化这个结构体。



接着,我们需要设置ROUTE这个寄存器的值,我们可以在中找到答案,我们打开它可以找到管脚交替的功能表如下所示:






我们可以看到TIMER0和TIMER1所对应一些管脚的LOCATION 和 通道号,那么我们在软件配置的时候就可以这样 

 /* Route the campare channels to the correct pins, enable CC2. */
 TIMER1->ROUTE = TIMER_ROUTE_LOCATION_LOC0 | TIMER_ROUTE_CC2PEN;

如果使用比较模式的话再配置TIMER_CompareSet()的时候也需要用到通道号,也就是上图给出的通道。如果你的TIMER想作为复用的TIMER,也就是说也许你在上午的时候想让TIMER1做定时,程序运行到下午了你又想让它去比较输出,到晚上你又让它去干捕获,这时你应该注意你的TOPval值,可能在切换的时候导致定时器假死循环。

最后,不要忘记配置定时器的时钟,清楚中断标志和打开定时器。


原创粉丝点击