原创 CC2430基础实验——T3/T4的使用(转载)

2009-9-20 17:53 2969 4 5 分类: MCU/ 嵌入式
T3的使用主要是用定时器3来改变小灯的状态,T3每发生200次中断小灯改变状态一次。

     这个实验共用到P1、P1DIR、P1SEL、T3CTL、T3CCTL0、T3CC0、T3CCTL1和T3CC1几个个寄存器。其中前几个的作用前面的文章里应经介绍过了,这里就不再重复说明了。这里主要是讲一下后几个寄存器的作用。其中T3CTL为T3控制寄存器,T3CCTL0为T3通道0捕获/比较控制寄存器,T3CC0为T3通道0捕获/比较值寄存器,T3CCTL1为T3通道1捕获/比较控制寄存器,T3CC1为为T3通道1捕获/比较值寄存器。


    在试验的相关程序里,想要看一下一个条件宏定义。


    复位计时器相关寄存器的宏定义。


   #define TIMER34_INIT(timer)   \
       do {                       \
          T##timer##CTL   = 0x06; \ 开溢出中断,模计数(反复从0x00 - T3CCX计数)
          T##timer##CCTL0 = 0x00; \ T3通道0没有捕获
          T##timer##CC0   = 0x00; \ T3通道0捕获/比较值为00
          T##timer##CCTL1 = 0x00; \ T3通道1没有捕获
          T##timer##CC1   = 0x00; \ T3通道1捕获/比较值为00
          } while (0)


    打开T3/4溢出中断宏定义。
    #define TIMER34_ENABLE_OVERFLOW_INT(timer,val) \
    (T##timer##CTL =  (val) ? T##timer##CTL | 0x08 : T##timer##CTL & ~0x08)


   设置T3的工作方式宏定义。
    #define TIMER3_SET_MODE(val)                      \
      do{                                             \
        T3CTL &= ~0X03;                               \
        (val==1)?(T3CTL|=0X01):  \
        (val==2)?(T3CTL|=0X02):  \
        (val==3)?(T3CTL|=0X03):  \
        (T3CTL|=0X00);                \
        }while(0)


     时钟分步选择宏定义。
     #define TIMER3_SET_CLOCK_DIVIDE(val)              \
       do{                                             \
         T3CTL &= ~0XE0;                               \
           (val==2) ? (T3CTL|=0X20):                   \
           (val==4) ? (T3CTL|=0x40):                   \
           (val==8) ? (T3CTL|=0X60):                   \
           (val==16)? (T3CTL|=0x80):                   \
           (val==32)? (T3CTL|=0xa0):                   \
    

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户444382 2013-5-12 11:31

不错
相关推荐阅读
用户1482397 2009-11-06 15:02
曼彻斯特和差分曼彻斯特编码的实现
 //----------------------------------------------------------------------------     |//  标题: 曼彻斯特和差分...
用户1482397 2009-09-29 15:03
基于ZigBee协议的无线传感器网络设计
 引 言              传感器作为人们感官的延伸,在现代社会中得到了越来越广泛的应用。随着通信技术、嵌入式技术、传感器技术的发展,             传感器正逐渐向智能化、微型化、无...
用户1482397 2009-09-28 10:31
MSP430单片机的框架程序(转)
MSP430单片机的框架程序(转)下面给出MSP430的程序框架,我们可以在此基础上修改以及添加自己所需的程序。/*******************************************...
用户1482397 2009-09-23 11:00
利用USART实现单片机与串口通信[C语言]
利用USART实现单片机与串口通信[C语言]//实验目的:熟悉USART通信//通过“串口调试助手”协助工作//串口调试助手发送数据给877,877收到后再转发回串口助手//硬件要求:拨码开关S7全置...
用户1482397 2009-09-23 10:51
at89c2051制作的超声波测距源程序
#include <REG2051.H>#define k1 P3_4#define csbout    P3_5                  //超声波发送#define csbi...
用户1482397 2009-09-23 10:37
定时器程序
 #include <REGX52.H>     //AT89S52头文件#define uint unsigned int#define uchar unsigned charuchar...
EE直播间
更多
我要评论
1
4
关闭 站长推荐上一条 /3 下一条