• [Zigbee]定时器1


    注意:在定时器可以使用一个输入/输出引脚之前,所需的 I/O 引脚必须配置为定时器 1 的外设引脚。

    定时器1的引脚映射方案选用是备用2方案:P07对应通道3、P06-通道4、P12-通道0、P11-通道1、P10-通道2~

    定时器1的输出比较模式:在输出比较模式中,与通道相关的IO要设置为输出模式。(什么是输出比较模式,运作机制)在定时器启动后, 计数器的内容会和通道比较寄存器中的内容T1CCnH:T1CCnL做比较。如果这两个内容(值)相等,输出引脚根据比较输出模式T1CCTLn.CMP的设置进行设置、复位或切换。(核心就是将T1CC0的值和每个通道寄存器中的值比较,相等了则产生中断等)

    当发生一个比较时,设置IRCON.T1IF 标志和该通道的中断标志T1STAT.CHnIF(n 是通道号码)。如果分别设置了相应的中断屏蔽位T1CCTLn.IM,以及IEN1.T1EN,将产生一个中断请求。

    PWM 信号的周期通过设置T1CC0 确定,通道输出的占空比由T1CCn 确定,其中n 是PWM 通道1 或2

    定时器1 寄存器

      本节描述了定时器1 的寄存器,由以下寄存器组成:

    ● T1CNTH – 定时器1 计数高位
    ● T1CNTL – 定时器1 计数低位
    ● T1CTL – 定时器1 控制
    ● T1STAT –定时器1 状态
    ● T1CCTLn – 定时器1 通道n 捕获/比较控制
    ● T1CCnH – 定时器1 通道n 捕获/比较高位值
    ● T1CCnL – 定时器1 通道n 捕获/比较低位值

    *******************************************************************************************************************

    #include<ioCC2530.h>

    #define LED2 P1_1

    void InitLed();
    void InitTimer1();

    void InitLed()
    {
      P1DIR |= 0x02;
      LED2 = 0;
    }

    void InitTimer1()
    {
      CLKCONCMD &= ~0x40;//  设置时钟源为32MHZ晶振
      while(CLKCONCMD & 0x40);
      CLKCONCMD &= ~0x07;//设置主时钟频率为32MHZ
      CLKCONCMD |= 0x38;//定时器标记输出设置 250KHZ
     
      PERCFG |= 0x40;//定时器的外设IO位置,设为外设位置2 即P1引脚
      P2SEL &= ~0x10;//当PECFG分配同一个IO上两个设备确定优先顺序:TIMER1
      P2DIR |=0x80;//确定不同外设占用引脚的第1优先级:定时器1 通道0-1
     
      P1DIR |=0xff;//P1端口设置为输出
      P1SEL |= 0x02;//TIMER1  通道1 映射P1_1
     
      T1CC1H = 0x00; //20%占空比为200us
      T1CC1L = 0x32; //修改T1CC1L可调整LED的亮度
      T1CC0H = 0x00;
      T1CC0L = 0xff; // 1ms的时钟周期 频率为976.516HZ
      T1CCTL1 = 0x1c; //模式选择 通道1比较模式,T1CCTL1.CMP = 011
      T1CTL = 0x02; // 250KHz 1分频 T1CTL.MODE = 10 :模 ,从0x0000到T1CC0反复计数
    }

    void main()
    {
      InitLed();
      InitTimer1();
      while(1)
      {}
    }

    ************************************************************************************************************************

  • 相关阅读:
    一个网络传输框架——zeroMQ 调研笔记
    Node.js的cluster模块——Web后端多进程服务
    boost::spirit unicode 简用记录
    HTTP的长连接和短连接——Node上的测试
    MongoDB 驱动以及分布式集群读取优先级设置
    Lua知识备忘录
    MongoDB使用小结:一些常用操作分享
    此项目与Visual Studio的当前版本不兼容的报错
    @Controller和@RestController的区别
    SQLSERVER中计算某个字段中用分隔符分割的字符的个数
  • 原文地址:https://www.cnblogs.com/Tea1024/p/5843213.html
Copyright © 2020-2023  润新知