zigbee学习之路(八):定时器1(中断)
一.前言
通过上次的实验,我们已经学会了定时器3的中断方式,这次,我们来看看定时器1通过中断怎么控制。
二.原理分析
定时器1的初始化跟前面提到的一样,也是要配置寄存器T1CTL,还要进行开中断的操作,由T1IE和EA控制。
三.程序
#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 InitT1(void); //Timer1中断方式初始化函数
//由于是中断函数用到,一定要定义为全局变量
uint count=0;//用于计算溢出中断的次数
/********************************* 函 数 名 : main 功能描述 : Timer1测试(Timer1中断方式的使用) 输入参数 : NONE 输出参数 : NONE 返 回 值 : NONE *****************************/
void main(void)
{
InitLed(); //调用初始化函数
InitT1();
while(1)
{ }
}
/************** 函 数 名 : T1_ISR 功能描述 : 中断服务函数 输入参数 : NONE 输出参数 : NONE 返 回 值 : NONE *****************/
#pragma vector = T1_VECTOR //Timer1中断向量
__interrupt void T1_ISR(void)
{ IRCON = 0x00; //清中断标志, 也可由硬件自动完成
if((++count)==1) //1次中断后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 |= 0x13; //P1_0、P1_1、P1_4义为输出
LED1 = 1; //LED1灯熄灭
LED2 = 1; //LED2灯熄灭
LED3 = 1; //LED3灯熄灭
}
/********************************* 函 数 名 : InitT1 功能描述 : Timer1中断方式初始化函数 输入参数 : NONE 输出参数 : NONE 返 回 值 : NONE *****************/
void InitT1(void)
{ T1CTL|=0X0d; //128分频,自由运行模式
T1IE = 1; //开Timer1中断
EA = 1; //开总中断 }
四.总结与分析
程序的功能与之前一样,就是让led闪烁,目的只是熟悉定时器的使用,大家要注意区分的是定时器1和2都是16位的,而3和4都是8位的。至此为止,定时器所进行和了解的差不多了,下一节,我们主要开始学习串口。
zigbee学习之路(八):定时器1(中断)的更多相关文章
- zigbee学习之路(七):定时器3(中断方式)
一.前言 上次我们学习了了用定时器3进行查询方式来进行溢出判断,今天我们来换一种方式,用中断方式来检测和查询定时器3的溢出. 二.原理与分析 要使用定时器3,我们必须先要配置的是T3CTL,来把定时器 ...
- zigbee学习之路(五):定时器1(查询方式)
一.前言 今天,我们来学习几乎所有单片机都有的功能,定时器的使用,定时器对单片机来说是相当重要的,有了它,单片机就可以进行一些复杂的工作. 二.原理与分析 谈到定时器的控制,我们最先想到的是要给它赋初 ...
- zigbee学习之路(四):按键控制(中断方式)
一.前言 通过上次的学习,我们学习了如何用按键控制led,但是在实际应用中,这种查询方式占用了cpu的时间,如果通过中断控制就可以解决这个问题,我们今天就来学习按键控制的中断方式. 二.原理分析 传统 ...
- zigbee学习之路(十二):zigbee协议原理介绍
一.前言 从今天开始,我们要正式开始进行zigbee相关的通信实验了,我所使用的协议栈是ZStack 是TI ZStack-CC2530-2.3.0-1.4.0版本,大家也可以从TI的官网上直接下载T ...
- zigbee学习之路(十五):基于协议栈的按键实验
一.前言 经过上次的学习,相信大家已经初步学会使用zigbee协议进行发送和接受数据了.今天,我们要进行的实验是按键的实验,学会如何在协议栈里实现按键中断. 二.实验功能 在协议栈上实现按键中断,BU ...
- zigbee学习之路(十一):看门狗
一.前言 今天,我们要通过实验学习和认识一下看门狗的使用,看门狗是为了防止防止程序跑飞的,通过不断的喂狗,使看门狗能持续监管程序的运行状态,当程序跑飞时,能及时把程序拽回来. 二.原理与分析 在CPU ...
- zigbee学习之路(十三):基于协议栈的Usart 实验
一.前言 这次实验我们来学习基于zigbee的串口通信实验,揭开zigbee神秘的面纱,让大家可以用zigbee协议编制属于自己的程序,这次实验只是串口发送数据,并没有进行无线的数据传输,为的是使大家 ...
- zigbee学习之路(十):串口(接收)
一.前言 上次我们学习了串口的发送,今天我们要学习串口的接收,要实现的功能是接收电脑发来的数据,控制LED 灯闪烁,而且将收到的数据发回给电脑显示出来.而且要采用不占用cpu资源的中断. 二原理与分析 ...
- zigbee学习之路(九):串口(发送)
一.前言 今天,我们来学习和实验串口模块方面的,串口通信是我们常用的通信手段,通过串口交互,我们可以很容易的和pc机进行数据的交换和发送,所以我们今天就来学习一下.这个实验所进行的功能是一开始CC25 ...
随机推荐
- IntelliJ 有的时候移动滚动条后会自动回到光标所在位置的解决方法
关闭有道词典的取词.划词功能.
- 2016HUAS暑假集训题1 A-士兵队列训练问题
A - 士兵队列训练问题 Description 某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从 ...
- 3_STL算法
1.常用遍历算法1.1 for_each for_each(v1.begin(),v1.end(),show); void show(int &n) //回调函数的入口地址 { cout &l ...
- BizTalk动手实验(十二)WCF-Oracle适配器使用
1 课程简介 通过本课程熟悉WCF-Oracle适配器的的使用 2 准备工作 1. 新建BizTalk空项目 2. 配置BizTalk项目的应用程序名称及程序签名. 3. Oracle数据库 ( Or ...
- EmguCV 轮廓分析函数汇总
一.cvApproxPoly 使用多边形逼近一个轮廓,使得顶点数目变少.算法先从轮廓选择2个最远的点,然后将2个连成一个线段,然后再查找轮廓上到线段距离最远的点,添加到逼近后的新轮廓.算法反复迭代,不 ...
- requirejs解决异步模块加载方案
他首先会遍历enableRegistry取出其中定义的模块,并且将没有加载成功的模块标识注入noLoads数组,如果过期了这里就会报错 如果上述没问题还会做循环依赖的判断,主要逻辑在breakCycl ...
- Python打包成exe程序
如何把.py文件打包成.exe可执行程序. 这里选择用PyInstaller 3.0来打包,PyInstaller 3.0下载地址:https://pypi.python.org/pypi/PyIns ...
- 设置sublime text2/3中默认预览浏览器快捷键的方法
各位前端大神们,大家在用IDE编辑器的时候喜欢用哪些呢?是Dreamweaver.Zend Studio.editplus又或者是sublime text?今天马浩周给大家就要说说设置sublime ...
- 生产环境下的mysql主从复制
一.主mysql配置:1.配置my.cnf[mysqld]server-id = 10 #服务器标示log-bin= mysql-bin #二进制日志binlog-do-db=mydb #需要同步的数 ...
- C#对泛型List<T>系列化与反系列化
练习一个小例子,在C#中,怎样对泛型List<T>数据集进行系列化与反系列化.我们先了解msdn提供的JavaScriptSerializer类: JavaScriptSerializer ...