MSPM0L1306开发板教程之通用定时器

描述

MSPM0L系列的通用定时器(TIMG)是一个16位的自动重装定时器,支持向下和上下计数两种模式,同时带有两个比较捕获单元,可以做到输出比较,输入捕获,PWM输出,单脉冲输出等功能。

定时器还支持正交编码器结果(QEI),多定时器间的交叉触发和同步,以及触发其他外设,例如ADC,DAC等,下图是各个TIMG的配置。

adc

TIMG可以选择BUSCLK,MFCLK,LFCLK作为时钟源,可以最大8分频时钟,再经过一个8位的预分频器,最终称为定时器的计数时钟。

adc

实操例程1

下面通过SYSCONFIG来配置一个1s的定时器,用来翻转IO,在SYSCONFIG的定时器外设选项卡中,定时器不同的功能已经分开配置了,根据需要选择不同的选项卡,我们是纯定时,所以就在最下面的一个。

adc

在配置界面中,时钟选择32MHz的总线时钟,分频系数为8,预分频为64,最终定时器时钟也就是62.5KHz,填入我们需要的定时周期1000ms,系统会自己算出寄存器的装载值。

adc

因为这个配置中,系统使用的是向下计数模式,所以中断部分选择计数到0事件

adc

GPIO的配置方法已经在前面的教程里说过了,这里就不在重复。

在程序初始化后,使能定时器中断,开启定时器就可以了,在中断函数中翻转IO口,就可以完成1s钟翻转IO的程序了

adc

配套例程名为TIM_toggleIO,需要复制到SDK目录下运行。

实操例程2

下面配置一个PWM输出的例子。

PWM输出是使用的是定时器的比较功能,MSPMPL系列每个定时器可以输出2个通道的同周期不同占空比的PWM。

有两种PWM模式,一个是边缘对齐PWM,其实就是定时器使用的向下计数模式,输出通道在定时器计数开始的时候会输出高电平,当计数值与输出通道的比较值相同的时候,输出通道会输出低电平一直到定时器的计数值计数到0,就完成了一个周期的脉冲输出。

adc

另外一个数中心对齐PWM,也就是定时器的上下计数模式,输出通道会在定时器开始的时候输出低电平,在定时器向上计数和向下计数两次到达输出通道的比较值相等的时候各翻转一次电平。

adc

输出通道初始电平在定时器未开始计数的时候可以在OCTL_xx寄存器中修改,比较输出通道的电平也可以在此寄存器中修改成翻转输出。

这里设置两个100Hz,50%占空比的PWM,其中一个通道为翻转输出。

在SYSCONFIG的TIMER-PWM选项卡中,设置好对应的时钟和分频,以及PWM周期计数值,系统会自动计算出PWM频率。

adc

在PWM设置里面,选择PWM模式,这里选的是边缘对齐,选择双通道输出,每个填入通道的期望占空比,系统会自己计算出计数值以及实际占空比,通道初始状态也可以在这里设置,这里默认不动,我们把0通设置为翻转输出。

adc

最后在PinMux配置好具体的输出管脚。

adc

在程序里开启定时器就可以输出PWM了。

adc

示波器抓一下,可以看到对应管脚已经产生了配置所需的PWM。

adc

配套例程名为TIM_PWM,需要复制到SDK目录下运行。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分