我是靠谱客的博主 清爽寒风,这篇文章主要介绍CC2530————T1定时器正计数/倒计数模式采用中断方式控制LED灯宏定义初始化中断主函数,现在分享给大家,希望可以做个参考。

CC2530————T1定时器正计数/倒计数模式采用中断方式控制LED灯

  • 宏定义
  • 初始化
  • 中断
  • 主函数

宏定义

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 主函数 /**************************************/ /* CC2530例程 */ /*例程名称:定时器(中断方式) */ /*描述:通过定时器T1中断方式控制LED1周期性闪烁 **************************************/ #include <ioCC2530.h> #define uint unsigned int #define uchar unsigned char #define LED1 P1_0 //定义LED1为P1_0口控制 uchar count=0; //函数声明 void InitLed(void); //初始化P1口 void InitT1(); //初始化定时器T1 //初始化程序 /*****************************/

初始化

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void InitLed(void) { P1DIR |= 0x01; //P1_0定义为输出 LED1 = 0; //LED1灯初始化熄灭 } //定时器初始化 void InitT1() //系统不配置工作时钟时默认使用内部RC振荡,即16MHz { T1CTL = 0x0F; //128分频,正计数/倒计数模式,计数值由T1CC0L和T1CC0H确定 T1CC0L=0x12; T1CC0H=0x7A; //T1OVFIM=1; T1IE=1; EA=1; //T1STAT= 0x21; //通道0, 中断有效 }

中断

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/*************************** * 函数名称:T1_INT * 功 能:定时器1中断处理函数 * 入口参数:无 * 出口参数:无 * 返 回 值:无 ***************************/ #pragma vector=T1_VECTOR __interrupt void T1_INT(void) { T1STAT&=~0x21; ++count; if(count == 3) //如果溢出次数到达3说明经过了1.5秒 { LED1 = 1; //点亮LED1 } if(count == 4) //如果溢出次数到达4说明经过了2秒 { LED1 = 0; //熄灭LED1 count=0; } }

主函数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*************************** * 函数名称:main * 功 能:main函数入口 * 入口参数:无 * 出口参数:无 * 返 回 值:无 ***************************/ void main(void) { InitLed(); //调用初始化函数 InitT1(); while(1) { } }

最后

以上就是清爽寒风最近收集整理的关于CC2530————T1定时器正计数/倒计数模式采用中断方式控制LED灯宏定义初始化中断主函数的全部内容,更多相关CC2530————T1定时器正计数/倒计数模式采用中断方式控制LED灯宏定义初始化中断主函数内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(83)

评论列表共有 0 条评论

立即
投稿
返回
顶部