zigbee学习之路(七):定时器3(中断方式)
一.前言
上次我们学习了了用定时器3进行查询方式来进行溢出判断,今天我们来换一种方式,用中断方式来检测和查询定时器3的溢出。
二.原理与分析
要使用定时器3,我们必须先要配置的是T3CTL,来把定时器3初始化,进行工作模式和频率的选择,要使用中断模式来控制定时器3,我们还要配置中断的控制寄存器,T3IE和总中断EA。T3CTL的配置和上次的一样。
三.程序
#include <ioCC2530.h>
#define uint unsigned int
#define uchar unsigned char
//定义控制LED灯的端口
#define LED1 P1_0 //LED1为P1_0端口控制
#define LED2 P1_1 //LED2为P1_1端口控制
#define LED3 P1_4 //LED3为P1_4端口控制
//函数声明 void Delayms(uint xms); //延时函数
void InitLed(void); //LED_IO初始化函数
void InitT3(void); //Timer3中断方式初始化函数
//由于是中断函数用到,一定要定义为全局变量
uint count=0;//用于计算溢出中断的次数
/***************** 函 数 名 : main 功能描述 : Timer3测试(Timer3中断方式的使用) 输入参数 : NONE 输出参数 : NONE 返 回 值 : NONE ******************/
void main(void)
{
InitLed(); //调用初始化函数
InitT3();
while(1) { } }
/********************* 函 数 名 : T3_ISR 功能描述 : 中断服务函数 输入参数 : NONE 输出参数 : NONE 返 回 值 : NONE *********************/ #pragma vector = T3_VECTOR //Timer3中断向量
__interrupt void T3_ISR(void)
{ IRCON = 0x00; //清中断标志, 也可由硬件自动完成
if((++count)>254) //254次中断后LED取反,闪烁一轮(0.5 秒时间)
{
count = 0; //计数清零
LED1=~LED1;
LED2=~LED2;
LED3=~LED3; }
}
/************************ 函 数 名 : Delayms 功能描述 : 毫秒延时 输入参数 : xms:延时时间,如 i=xms 即延时i毫秒 输出参数 : none 返 回 值 : none ********************/
void Delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=587;j>0;j--); }
/******************** 函 数 名 : InitLed 功能描述 : LED_IO初始化函数 输入参数 : NONE 输出参数 : NONE 返 回 值 : NONE ************************/
void InitLed(void)
{
P1DIR |= 0xff; //P1端口定义为输出
LED1 = 1; //LED1灯熄灭
LED2 = 1;
LED3 = 1; }
/******************** 函 数 名 : InitT3 功能描述 : Timer3中断方式初始化函数 输入参数 : NONE 输出参数 : NONE 返 回 值 : NONE *************************/
void InitT3(void)
{
T3CTL|=0XE0; //128分频,
T3CTL |= 0x08 ; //开溢出中断
T3CTL &= ~0X03; //自动重装0x00---0xFF
T3IE = 1; //开Timer3中断
EA = 1; //开总中断
T3CTL |=0X10; //启动
}
四.原理与分析
通过本次实验,我们应该会用中断来控制定时器了,通过开总中断EA和定时器3中断T3IE来控制定时器3的运行。
zigbee学习之路(七):定时器3(中断方式)的更多相关文章
- zigbee学习之路(八):定时器1(中断)
一.前言 通过上次的实验,我们已经学会了定时器3的中断方式,这次,我们来看看定时器1通过中断怎么控制. 二.原理分析 定时器1的初始化跟前面提到的一样,也是要配置寄存器T1CTL,还要进行开中断的操作 ...
- zigbee学习之路(四):按键控制(中断方式)
一.前言 通过上次的学习,我们学习了如何用按键控制led,但是在实际应用中,这种查询方式占用了cpu的时间,如果通过中断控制就可以解决这个问题,我们今天就来学习按键控制的中断方式. 二.原理分析 传统 ...
- zigbee学习之路(五):定时器1(查询方式)
一.前言 今天,我们来学习几乎所有单片机都有的功能,定时器的使用,定时器对单片机来说是相当重要的,有了它,单片机就可以进行一些复杂的工作. 二.原理与分析 谈到定时器的控制,我们最先想到的是要给它赋初 ...
- zigbee学习之路(十五):基于协议栈的按键实验
一.前言 经过上次的学习,相信大家已经初步学会使用zigbee协议进行发送和接受数据了.今天,我们要进行的实验是按键的实验,学会如何在协议栈里实现按键中断. 二.实验功能 在协议栈上实现按键中断,BU ...
- zigbee学习之路(十二):zigbee协议原理介绍
一.前言 从今天开始,我们要正式开始进行zigbee相关的通信实验了,我所使用的协议栈是ZStack 是TI ZStack-CC2530-2.3.0-1.4.0版本,大家也可以从TI的官网上直接下载T ...
- zigbee学习之路(十一):看门狗
一.前言 今天,我们要通过实验学习和认识一下看门狗的使用,看门狗是为了防止防止程序跑飞的,通过不断的喂狗,使看门狗能持续监管程序的运行状态,当程序跑飞时,能及时把程序拽回来. 二.原理与分析 在CPU ...
- zigbee学习之路(十三):基于协议栈的Usart 实验
一.前言 这次实验我们来学习基于zigbee的串口通信实验,揭开zigbee神秘的面纱,让大家可以用zigbee协议编制属于自己的程序,这次实验只是串口发送数据,并没有进行无线的数据传输,为的是使大家 ...
- zigbee学习之路(十):串口(接收)
一.前言 上次我们学习了串口的发送,今天我们要学习串口的接收,要实现的功能是接收电脑发来的数据,控制LED 灯闪烁,而且将收到的数据发回给电脑显示出来.而且要采用不占用cpu资源的中断. 二原理与分析 ...
- zigbee学习之路(九):串口(发送)
一.前言 今天,我们来学习和实验串口模块方面的,串口通信是我们常用的通信手段,通过串口交互,我们可以很容易的和pc机进行数据的交换和发送,所以我们今天就来学习一下.这个实验所进行的功能是一开始CC25 ...
随机推荐
- echarts一个页面动态加载两张不同图表数据
参考 http://www.stepday.com/topic/?877 http://blog.csdn.net/for_china2012/article/details/45167161 // ...
- c++20701除法(刘汝佳1、2册第七章,暴搜解决)
20701除法 难度级别: B: 编程语言:不限:运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 输入正整数n,按从小到大的顺序输出所有 ...
- 使用putty组件向服务器上传或下载文件
基于SSH的连接 上传文件: pscp -P 28661(portNum) -pw password sourceFilePath user@serverIP:destinationFilePath ...
- 剑指offer:大恒图像
大恒图像:成立于1991年,专注于视觉部件.视觉系统及互联网医疗相关产品研发.生产和营销的高科技企业. 旗下产品信息: 1.图像采集卡 摄像机等输入的模拟图像信号经过A/D转换,或将数字摄像机的输出信 ...
- Thinking in Java——笔记(6)
Access Control A piece of work isn't good until it's been rewritten, often many times. Thus a primar ...
- SqlServer判断表是否存在
.判断数据表是否存在 方法一: use yourdb; go if object_id(N'tablename',N'U') is not null print '存在' else print '不存 ...
- JS的基础知识
前言:写前端代码时的各种取值纠结,让我决定我必须要好好学一下js............加油~ $("#tr"+id).remove() 删除某一行,而不用刷新页面 HightCh ...
- Android EditText组件drawableLeft属性设置的图片和hint设置的文字之间的距离
有的时候,我们需要在文本框里放置icon图片,并且设置默认提示文字的时候,需要设置两者之间的间距,如下图: 这里想设置的就是之前的手机icon和”请输入手机号“之间的距离,则可是使用以下的方式: &l ...
- Python之路-python(装饰器、生成器、迭代器、Json & pickle 数据序列化、软件目录结构规范)
装饰器: 首先来认识一下python函数, 定义:本质是函数(功能是装饰其它函数),为其它函数添加附件功能 原则: 1.不能修改被装饰的函数的源代码. 2.不 ...
- Number类型方法
//1.toString(); 转换成字符串 var s=123; console.log(typeof s.toString()); //string //2.toLocaleString() ...