查看: 4718|回复: 3

[分享] 【YL-KL26Z开发】+ LPTMR和PIT的中断点灯

[复制链接]

该用户从未签到

42

主题

340

帖子

0

高级会员

Rank: 4

积分
722
最后登录
2016-1-9
发表于 2015-7-23 17:40:48 | 显示全部楼层 |阅读模式
本帖最后由 LokTarOgar 于 2015-7-23 21:07 编辑

接上次的CMP比较实验:https://www.nxpic.org.cn/module/forum/thread-600244-1-1.html

由于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.在所有寄存器配置好后,再开启中断

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


接着是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_TFLG0 |= PIT_TFLG_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。

同样,主函数和中断服务函数就不再贴了。




本人才疏,上面许多都是自己的见解,如果有不对的地方,请务必指出来,好共同学习,谢谢!


趁热打铁,刚刚调试了一下PIT中断触发DAC产生正弦波的程序。下面是视频:



程序就是在上面PIT的基础上加上DAC的初始化,在中断服务函数中加上DA的转换。
主要难点是DA要转换一个正弦表,还好光盘的程序文件夹下有一个正弦函数波形计算软件。
正弦函数波形计算软件.zip (4.68 KB, 下载次数: 11)

评分

参与人数 1NXP金币 +40 收起 理由
小七 + 40 打赏!

查看全部评分

回复

使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16706
    最后登录
    1970-1-1
    发表于 2015-7-23 18:01:00 | 显示全部楼层
    学习学习
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2022-3-3 09:56
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    106

    主题

    836

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    1527
    最后登录
    2023-6-12
    发表于 2015-7-23 19:42:37 | 显示全部楼层
    学习了啊,
    捕获.PNG
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 16:14
  • 签到天数: 1442 天

    连续签到: 1 天

    [LV.10]以坛为家III

    17

    主题

    3862

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    8291
    最后登录
    2021-12-10
    发表于 2015-7-23 23:13:38 | 显示全部楼层
    好帖,顶一个。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-23 14:26 , Processed in 0.088517 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表