查看: 2403|回复: 1

[原创] 【KL27 mini Board 开发】+简单的LPTMR0

[复制链接]
  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2016-4-9 22:33:40 | 显示全部楼层 |阅读模式
    KL27内有一个低功耗定时器,可以工作在脉冲计数或定时计数模式,在16位的比较寄存器里设置目标值。
    LPTMR0可选择的时钟很多
    未命名1.JPG
    板上没有外部晶振,可用的就是LPO和MCGIRCLK了。
    使用MCGIRCLK还要打开使用的时钟源并进行适当的分频
    未命名2.JPG
    1. #include "main.h"

    2. int main()
    3. {
    4. //     SystemCoreClockUpdate();
    5.    
    6.     SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK            
    7.                   | SIM_SCGC5_PORTB_MASK
    8.                   | SIM_SCGC5_PORTC_MASK
    9.                   | SIM_SCGC5_PORTD_MASK
    10.                   | SIM_SCGC5_PORTE_MASK );

    11.     SIM_SCGC5 |= SIM_SCGC5_LPTMR_MASK;      
    12.     LPTMR0_CSR |= LPTMR_CSR_TCF_MASK | LPTMR_CSR_TIE_MASK;   //清除标志、开启中断
    13. //    LPTMR0_PSR |= LPTMR_PSR_PCS(0);                        //使用MCGIRCLK
    14. //   
    15. //    MCG_C1=0x02;                     //LIRC使能
    16. //    MCG_C2=0x01;                    //LIRC8M
    17. //    MCG_SC=0x08;                   //16分频
    18. //    MCG_MC=0x84;                  //16分频   
    19. //    LPTMR0_CMR = 15625;       //16位计数器值范围0-65535
    20.     LPTMR0_PSR |= LPTMR_PSR_PCS(1);
    21.     LPTMR0_CMR =500;
    22.    
    23.     LPTMR0_CSR |= LPTMR_CSR_TEN_MASK;                          //开启LPTMR     
    24.    
    25.    
    26.     PORTC_PCR3|= 0x00000100u;
    27.     PORTA_PCR1|= 0x00000100u;        //设置  复用为 GPIO 模式
    28.     PORTE_PCR0|= 0x00000100u;           
    29.     PORTA_PCR2|= 0x00000100u;
    30.    
    31.    
    32.    
    33.     GPIOC_PSOR |= 1U<< 3;                //初始化输出状态为1
    34.     GPIOA_PSOR |= 1U<< 1;
    35.     GPIOE_PSOR |= 1U;
    36.     GPIOA_PSOR |= 1U<< 2;
    37.    
    38.     GPIOC_PDDR |= 1U<<3;                //设置为输出
    39.     GPIOA_PDDR |= 1U<<1;               
    40.     GPIOE_PDDR |= 1U;
    41.     GPIOA_PDDR |= 1U<<2;
    42.    
    43.    
    44.     NVIC_EnableIRQ(LPTMR0_IRQn);
    45.     NVIC_SetPriority(LPTMR0_IRQn,3);
    46.    
    47.     while(1)
    48.      {               
    49.                
    50.      }   

    51. }


    52. void  LPTMR0_IRQHandler (void)
    53. {  
    54.    LPTMR0_CSR |= LPTMR_CSR_TCF_MASK;
    55.    GPIOA_PTOR =1U<< 2;   
    56.    
    57. }
    复制代码


    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-12 00:23
  • 签到天数: 745 天

    连续签到: 1 天

    [LV.9]以坛为家II

    27

    主题

    1万

    帖子

    26

    金牌会员

    Rank: 6Rank: 6

    积分
    6868
    最后登录
    2020-7-15
    发表于 2016-4-9 23:38:09 | 显示全部楼层
    楼主产量高啊!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 00:01 , Processed in 0.086441 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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