历史上的今天
今天是:2024年09月04日(星期三)
2019年09月04日 | cc2530裸机编程系列笔记2--定时器Timer1模模式程序 中断方式
2019-09-04 来源:eefocus
上篇专题中描述的是采用查询的方式完成定时器Timer1模模式程序的设计,本篇则介绍采用中断的方式完成定时器Timer1模模式程序的设计。查询的方式,上篇已经介绍过就是在主程序中不断的查询中断标志是否被置位,置位后则进行相应处理。中断的方式则为,当中断产生时,CC2530在硬件的作用下将程序跳转到中断中断服务程序去执行。先贴出中断方式的程序:
#include #define uint8 unsigned char #define uint16 unsigned int #define BIT(x) (1 << x) #define LED1 P1_0 /****************************/ //函数声明 /****************************/ void initial(void); /**************************************/ //主函数 /**************************************/ void main(void) { initial(); while(1) { } } /****************************/ //初始化函数 /****************************/ void initial(void) { /*设置P1.0为输出模式*/ P1DIR ^= BIT(0); /*关闭LED1*/ LED1 = 1; /*选择外部石英晶振*/ CLKCONCMD &= ~0x40; /*等待晶振稳定*/ while(!(SLEEPSTA & 0x40)); /*TICHSPD二分频,CLKSPD不分频*/ CLKCONCMD &= ~0x47; /*关闭RC振荡器*/ SLEEPCMD |= 0x04; /*设置定时器T1,128分频,模模式,从0计数到T1CC0*/ T1CTL |= 0x0E; /*装入定时器初值(比较值)*/ T1CC0L = 62500%256; T1CC0H = 62500/256; /*设置捕获比较通道0为比较模式,用以触发中断*/ T1CCTL0 ^=BIT(2); /*使能Timer1中断*/ T1IE = 1; /*开启总中断*/ EA = 1; } /****************************/ //定时器1中断函数 /****************************/ #pragma vector = T1_VECTOR __interrupt void T1_ISR(void) { LED1 = !LED1; }
史海拾趣
|
常用于测量液位的液位计有连通器式、吹泡式、差压式、电容式等,测量物位的有超声波物位计和放射性物位计等。其原理和特点如下: a.连通器式就是应用最普通的玻璃液位计,它的特点是结构简单、价廉、直观,适于现场使用,但易破损, ...… 查看全部问答> |
|
南京泰龙特种陶瓷有限公司成立于1992年,是生产特种精密陶瓷的高新技术企业。公司技术力量雄厚、生产工艺完善、 测试手段齐全。2000年引进了国外先进的生产技术,采用等静压干法成型工艺。有φ700mm×2000mm的大型等静压机、3座1750℃的高温窑炉、 ...… 查看全部问答> |
|
这个活动中版主已有主要部分:nand驱动、jpeg解码、usb-storage调试,目前需要完成的工作有 1、将以上部分整合 有了vga显示器,各种好玩的东西都可以编程~~~~~版主写了画点,设置光标功能,还可以加入扩展: 2、键盘接口 3、快速画线 4 ...… 查看全部问答> |
|
最近想在270上移植6.0,发现原来5.0的eboot不好用,重新改吧。改串口,改网络,下载打印信息如下: EBoot Loader Configuration: 0) IP address: 172.16.96.28 1) Subnet mask: 255.255.255.0 2) Boot delay: 5 seconds 3) DHCP: (Disabled) ...… 查看全部问答> |




