打印
[资料分享与下载]

LPTMR和PIT的中断点灯

[复制链接]
1407|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Luis德华|  楼主 | 2015-11-6 20:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于LPTMR比较简单,所以和PIT的一起放在这里,正好将两种定时器做一个比较。

首先是LPTMER的说明:

LPTRM: Low-power timer 它的特点是可以在KL26Z的所有低功耗模式下允许,可以作为低功耗模式下CPU的唤醒触发器。

下面是LPTMR的配置程序:
void  lptmrInit (void)
{
    SIM_SCGC5 |= SIM_SCGC5_LPTMR_MASK;                                 /* 开启LPTMR时钟*/
    LPTMR0_CSR |= ~LPTMR_CSR_TEN_MASK;                               /* 关闭LPTMR*/      
    LPTMR0_CSR |= LPTMR_CSR_TCF_MASK;                                  /* 清除标志位 */
    LPTMR0_PSR |= LPTMR_PSR_PCS(1);                                        /* 选择LPTMR时钟 */
    LPTMR0_CMR = 500;                                                                  /* 配置LPTMR比较值 */
    LPTMR0_CSR |= LPTMR_CSR_TEN_MASK | LPTMR_CSR_TIE_MASK;               /* 开启LPTMR,使能中断*/

    NVIC_EnableIRQ(LPTimer_IRQn);                                       /* 允许LPTMR中断 */
    NVIC_SetPriority(LPTimer_IRQn,3);                                   /* 选择中断优先级  */
    __enable_irq();                                                                        /* 开启总中断 */
}
在这里要注意红色的地方:1.配置LPTMR之前,首先要关闭定时器。2.在所有寄存器配置好后,再开启中断


这里主函数和中断服务函数就不贴出来了,可以参考之前的LED和中断服务函数的配置。

相关帖子

沙发
Luis德华|  楼主 | 2015-11-6 20:49 | 只看该作者

接着是PIT的说明: PIT:Periodic inteerupt timer 它的特点是每次触发中断的同时会产生一个脉冲信号,可以用来用作许多功能的触发器。

下面是PIT的配置程序:
void pitInit(void)
{
    SIM_SCGC6 |= SIM_SCGC6_PIT_MASK;                                          /* 使能PIT时钟 */
    PIT_MCR &= ~(1 << PIT_MCR_MDIS_SHIFT);                                /* 选择PIT模式i */
    PIT_LDVAL0 = 24000000;                                                              /* 设置PIT初值  */
    PIT_T标志寄存器0 |= PIT_T标志寄存器_TIF_MASK;                                               /* 清标志位 */
    PIT_TCTRL0 |= PIT_TCTRL_TIE_MASK | PIT_TCTRL_TEN_MASK;   /* 使能PIT中断,使能定时器    */
           
    NVIC_EnableIRQ(PIT_IRQn);                                       
    NVIC_SetPriority(PIT_IRQn,3);                                   
    __enable_irq();                                                

}
这里PIT与LPTMR的区别就是,PIT可以随时改变周期,从而动态的调节PIT。

使用特权

评论回复
板凳
Luis德华|  楼主 | 2015-11-6 20:50 | 只看该作者
程序就是在上面PIT的基础上加上DAC的初始化,在中断服务函数中加上DA的转换。
主要难点是DA要转换一个正弦表,还好光盘的程序文件夹下有一个正弦函数波形计算软件。
直接将生成的数据存在数组中,用DA输出即可。

正弦函数波形计算软件.zip

4.68 KB

使用特权

评论回复
地板
FSL_TICS_ZJJ| | 2015-11-9 10:23 | 只看该作者
感谢楼主的资料分享!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

370

帖子

4

粉丝