CC2530之定时器T1 |
您所在的位置:网站首页 › cc2530的作用和功能 › CC2530之定时器T1 |
CC2530之定时器T1
在本次学习中,主要通过定时器来控制LED的亮灭。 首先,先查看相关电路图。由图可知,当CC2530端口1的0号引脚输出低电平时,LED1将被点亮。 接下来,先查看与LED(P1_0)配置相关的寄存器。 端口1功能选择寄存器(P1SEL)。这是一个8位的寄存器,对应端口1的8个引脚,将相应位设为0,表示将相应引脚设置为普通的I/O口,若设置为1,则将相关引脚设为外设I/O,默认值都为0。 端口1方向选择寄存器(P1DIR)。这是一个8位的寄存器,对应端口1的8个引脚,将相应位设为0,表示将相应引脚设置为输入引脚,若设置为1,则将相关引脚设为输出引脚,默认值都为0。 端口1输入模式寄存器(P1INP)。这是一个8位的寄存器,对应端口1的8个引脚,将相应位设为0,表示将相应引脚设置为上拉/下拉模式,若设置为1,则将相关引脚设为三态模式,其中P1_0和P1_1没有上拉/下拉功能,可以不用配置,默认值都为0。 再来看看与定时器相关的寄存器 1. 定时器1的控制寄存器(T1CTL)_。 该寄存器的bit3和bit2位用来设置分频值 - 00:分频值为1 - 01:分频值为8 - 10:分频值为32 - 11:分频值为128 bit1和bit0位用来设置计数模式 - 00:暂停计数 - 01:自由计数,从0x0000计数到0xFFFF,不断重复计数。 - 10:模计数,从0x0000计数到T1CC0,不断重复计数。 - 11:向上/向下计数,从0x0000计数到T1CC0再从T1CC0计数到0x0000,不断重复。 定时器1状态标志寄存器(T1STAT)。 bit5:定时器1的溢出中断标志bit4:定时器1通道4的中断标志bit3: 定时器1通道3的中断标志bit2:定时器1通道2的中断标志bit1:定时器1通道1的中断标志bit0:定时器1通道0的中断标志中断标志4寄存器(IRCON)。 bit1:定时器1中断标志,当中断发生时置为1,当CPU向量指向中断服务例程时置为0 /*设置定时器,当发生溢出中断时,LED进行一次翻转*/ #include typedef unsigned char uchar; typedef unsigned int uint; #define LED1 P1_0 void LEDInit(void) { P1SEL &= ~0x01; P1DIR |= 0x01; } void TIM1Init(void) { T1CTL |= 0x0d;//128分频,自由计数模式 } void main(void) { LEDInit(); TIM1Init(); while(1) { if(IRCON>0) //是否发生中断 { LED1 = !LED1; IRCON = 0; } } } |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |