zigbee学习之路(五):定时器1(查询方式)
一.前言
今天,我们来学习几乎所有单片机都有的功能,定时器的使用,定时器对单片机来说是相当重要的,有了它,单片机就可以进行一些复杂的工作。
二.原理与分析
谈到定时器的控制,我们最先想到的是要给它赋初值和选择工作模式吧,下面我带大家熟悉一下cc2530中的定时器寄存器。
如上图所见,DIV寄存器用来确定定时器运行一次所需的时间,MODE用来选择定时器的工作模式。
定时器中断的标志位,有中断发生时,置为1
三.程序
#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端口
void InitT1(void); //初始化定时器T1
/********* 函 数 名 : main 功能描述 : Timer1测试(Timer1查询方式的使用) 输入参数 : NONE 输出参数 : NONE 返 回 值 : NONE ***************/
void main(void)
{ uchar count=0;
InitLed(); //LED1_IO初始化
InitT1(); //Timer1初始化
while(1)
{
if(IRCON>0) //查询溢出标志
{ IRCON=0;
if((++count)==1) //溢出一次约为0.5s
{ count=0;
LED1 = !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; //LED灯初始化熄灭
LED2 = 1;
LED3 = 1; }
/************ 函 数 名 : InitT1 功能描述 : Timer1初始化函数 输入参数 : NONE 输出参数 : NONE 返 回 值 : NONE **************/
void InitT1(void)
{ T1CTL = 0x0d; //128分频;
自由运行,从0x0000到0xFFFF反复计数 }
四.总结
通过本次实验,相信大家已经基本了解定时器1的使用了,需要注意的是IRCON这个寄存器,主函数里通过它来判断定时器是否溢出。
zigbee学习之路(五):定时器1(查询方式)的更多相关文章
- zigbee学习之路(七):定时器3(中断方式)
一.前言 上次我们学习了了用定时器3进行查询方式来进行溢出判断,今天我们来换一种方式,用中断方式来检测和查询定时器3的溢出. 二.原理与分析 要使用定时器3,我们必须先要配置的是T3CTL,来把定时器 ...
- Hibernate学习笔记(五)—— Hibernate查询方式
一.对象图导航查询 对象图导航查询方式是根据已经加载的对象,导航到他的关联对象.它利用类与类之间的关系来查询对象.比如要查找一个联系人对应的客户,就可以由联系人对象自动导航找到联系人所属的客户对象.当 ...
- zigbee学习之路(四):按键控制(中断方式)
一.前言 通过上次的学习,我们学习了如何用按键控制led,但是在实际应用中,这种查询方式占用了cpu的时间,如果通过中断控制就可以解决这个问题,我们今天就来学习按键控制的中断方式. 二.原理分析 传统 ...
- zigbee学习之路(八):定时器1(中断)
一.前言 通过上次的实验,我们已经学会了定时器3的中断方式,这次,我们来看看定时器1通过中断怎么控制. 二.原理分析 定时器1的初始化跟前面提到的一样,也是要配置寄存器T1CTL,还要进行开中断的操作 ...
- 用定时器T0查询方式P0口8位控制LED闪烁
#include<reg52.h> #define uchar unsigned char #define uint unsigned int void main (void) { uch ...
- zigbee学习之路(十五):基于协议栈的按键实验
一.前言 经过上次的学习,相信大家已经初步学会使用zigbee协议进行发送和接受数据了.今天,我们要进行的实验是按键的实验,学会如何在协议栈里实现按键中断. 二.实验功能 在协议栈上实现按键中断,BU ...
- zigbee学习之路(六):Time3(查询方式)
一.前言 通过上次的学习,相信大家对cc2530单片机的定时器的使用有了一定的了解,今天我们来介绍定时器3的使用,为什么介绍定时器3呢,因为它和定时器4功能是差不多的,所以学会定时器3,就基本掌握了c ...
- FastAPI 学习之路(六)查询参数,字符串的校验
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- IBatis.Net学习笔记五--常用的查询方式
在项目开发过程中,查询占了很大的一个比重,一个框架的好坏也很多程度上取决于查询的灵活性和效率.在IBatis.Net中提供了方便的数据库查询方式. 在Dao代码部分主要有两种方式:1.查询结果为一个对 ...
随机推荐
- Winform Combox DataSource 之不显示 displayemember 内容
刚开始学习数据绑定的东西, private void Form1_Load(object sender, EventArgs e) { IList<TLayer> tt = new Lis ...
- html第二天CSS
- MUI - Dialog 提示窗
Mui基本简介 MUI不依赖任何第三方JS库,压缩后的JS和CSS文件仅有100+K和60+K MUI的开发手册和下载地址 http://dev.dcloud.net.cn/mui/ui/ https ...
- 创建Struct2的web应用(一)
1.上http://struts.apache.org/ 下载Struct2 2.解压缩,将lib文件夹内的部分JAR复制到java web应用的WEB-INF/lib目录下.所需JAR: commo ...
- 使用Apache的.htaccess就可以防盗链
Apache的.htaccess可以实现很多功能,如密码保护.禁止显示目录列表.阻止/允许特定的IP地址.实现网址的301 重定向等等.本文就来说说使用Apache的.htaccess如何防盗链. 当 ...
- junit测试框架
import junit.framework.Assert; import org.junit.After; import org.junit.Before; import org.junit.Tes ...
- NEC学习 ---- 布局 -三列, 左右定宽,中间自适应
---恢复内容开始--- 这个布局很牛掰, 我觉得学习价值很大. 通过这个的学习, 我发现, 能将简单的事情做好, 就距离成功不远了. 其实布局就是利用所学知识, 活用. 在没看这个之前, 发现自己的 ...
- PHP文件操作系统----主要的文件操作函数
一.文件操作系统概述 1.概述: php中的文件操作系统主要是对文件和目录的操作.文件在windows系统下分为3种不同:文件.目录.未知,在linux/unix系统下分为7种不同:block.cha ...
- do put in ruby
apikey: XO.apikeys.cms, data: { favoriteItems: [{ UserId: SaveToFavoriteVar.content.FavoriteItem.Use ...
- 线性探测再散列 建立HASH表
根据数据元素的关键字和哈希函数建立哈希表并初始化哈希表,用开放定址法处理冲突,按屏幕输出的功能表选择所需的功能实现用哈希表对数据元素的插入,显示,查找,删除. 初始化哈希表时把elem[MAXSIZE ...