4、定时器T1通过查询方式控制LED1周期性闪烁(轮训方式)

定时器T1通过查询方式控制LED1周期性闪烁

 1 /****************************************************************************
 2 * 文 件 名: main.c
 3 * 作    者: Amo [ www.amoMcu.com 阿莫单片机]
 4 * 修    订: 2014-04-08
 5 * 版    本: 1.0
 6 * 描    述: 定时器T1通过查询方式控制LED1周期性闪烁
 7 ****************************************************************************/
 8 #include <ioCC2540.h>
 9
10 typedef unsigned char uchar;
11 typedef unsigned int  uint;
12
13 #define LED1 P1_0       // P1.0口控制LED1
14
15 /****************************************************************************
16 * 名    称: InitLed()
17 * 功    能: 设置LED灯相应的IO口
18 * 入口参数: 无
19 * 出口参数: 无
20 ****************************************************************************/
21 void InitLed(void)
22 {
23     P1DIR |= 0x01;      //P1.0定义为输出
24     LED1 = 0;           //使LED1灯下电默认为熄灭
25 }
26
27 /****************************************************************************
28 * 名    称: InitT1()
29 * 功    能: 定时器初始化,系统不配置工作时钟时默认是2分频,即16MHz
30 * 入口参数: 无
31 * 出口参数: 无
32 ****************************************************************************/
33 void InitT1()
34 {
35     T1CTL = 0x0d;       //128分频,自动重装 0x0000-0xFFFF
36     T1STAT= 0x21;       //通道0,中断有效
37 }
38
39 /****************************************************************************
40 * 程序入口函数
41 ****************************************************************************/
42 void main(void)
43 {
44     uchar count=0;
45
46     InitLed();             //调用初始化函数
47     InitT1();
48
49     while(1)
50     {
51         if(IRCON > 0)
52         {
53             IRCON=0;
54             if(count++ >= 1) //约1s周期性闪烁,示波器测大约为1025MS
55             {
56               count=0;
57               LED1 = !LED1;  //LED1闪烁
58             }
59         }
60     }
61 }

CC254x 的 T1 定时器( 16 位) 需要配置三个寄存器 T1CTL、 T1STAT、 IRCON:

所以配置如下:

27 /****************************************************************************
28 * 名    称: InitT1()
29 * 功    能: 定时器初始化,系统不配置工作时钟时默认是2分频,即16MHz
30 * 入口参数: 无
31 * 出口参数: 无
32 ****************************************************************************/
33 void InitT1()
34 {
35     T1CTL = 0x0d;       //128分频,自动重装 0x0000-0xFFFF
36     T1STAT= 0x21;       //通道0,中断有效
37 }

不采用中断可以轮训IRCON,当定时器1中断时置为1,轮训需要手动清零(采用中断子程序会自动清零)

链接:http://pan.baidu.com/s/1bnlWvEJ

时间: 2024-10-26 05:23:44

4、定时器T1通过查询方式控制LED1周期性闪烁(轮训方式)的相关文章

利用定时器 1和定时器0控制led1和led2分别 2hz和0.5hz闪烁

1 //利用定时器 1和定时器0控制led1和led2分别 2hz和0.5hz闪烁 2 //利用定时器0 1s,led1取反,利用计数器1,(65535-10)%256,取反 3 #include<reg52.h> 4 #define uchar unsigned char 5 #define uint unsigned int 6 sbit led1=P1^3; 7 sbit led2=P1^7; 8 uchar count0,count1; 9 10 void delay(uint x)

[ZigBee] 13、ZigBee基础阶段性回顾与加深理解——用定时器1产生PWM来控制LED亮度(七色灯)

引言:PWM对于很多软件工程师可能又熟悉又陌生,以PWM调节LED亮度为例,其本质是在每个周期都偷工减料一些,整体表现出LED欠压亮度不同的效果.像大家看到的七色彩灯其原理也类似,只是用3路PWM分别控制红.绿.蓝三种颜色的灯输出亮度,再结合混色原理表现出丰富多彩的炫光效果~ 写在前面:前十几篇介绍了CC2530的一些外设的基本用法,接下来几篇拿几个例子回顾并加深一下之前的知识点,上面引言是普及.下面高能预警! 第一个例子:用定时器1产生PWM来控制LED亮度 我们在<[ZigBee] 5.Zi

2、按下按键S1控制LED1.LED2.LED3实现跑马灯效果(CC2540开发寄存器设置)

按下按键S1控制LED1.LED2.LED3实现跑马灯效果 1 /**************************************************************************** 2 * 文 件 名: main.c 3 * 作 者: Amo [ www.amoMcu.com 阿莫单片机] 4 * 修 订: 2014-04-08 5 * 版 本: 1.0 6 * 描 述: 按下按键S1控制LED1.LED2.LED3实现跑马灯效果 7 ***********

浅析SQL查询语句未显式指定排序方式,无法保证同样的查询每次排序结果都一致的原因

本文出处:http://www.cnblogs.com/wy123/p/6189100.html 标题有点拗口, 先抛出问题:一个查询没有明确指定排序方式,那么,第二次执行这个同样的查询的时候,查询结果会不会与第一次的查询结果排序方式完全一样? 答案是不确定的,两个完全一样的查询,结果也完全一样,两次(多次)查询结果的排序方式有可能一致,有可能不一致. 如果不一致,又是什么原因导致同样的查询默认排序方式不一致? 以下简单分析几种情况,说明为什么查询同样的查询会出现默认排序结果不一样的情况.当然对

【CefSharp】 禁用右键菜单 与 控制弹出窗口的方式

这周没什么时间,一开始就在忙一些CefSharp的事情,Win10的研究就放了下来,CefSharp的资料挺少的,但好在是开源的,可以我们便宜的折腾.因为两个的内容都不多,我就合成一篇文章啦. 这还里还要吐嘈一下WinForm,也可能是WPF玩的年头长了,觉得WinForm真TNND的难用呀,弄几个定义的控件,相当之麻烦. 回归正文. 一.禁用右键菜单 禁用右键菜单其实是很容易的.主就要是实现一个接口 IMenuHandler,这个接口有一个 OnBeforeContextMenu的方法,我们在

存储I/O控制的实现及配置方式

对于整个主机系统,存储可能是其中最为缓慢和复杂的一部分,并且很容易成为整个系统的瓶颈:对于那些在主机上运行的虚拟机的用户,存储可能会使整个系统变得相当缓慢.VMware存储I/O管理最初在vSphere4.1中引入,将vSphere的存储资源控制提升到一个更高的标准.vSphere 5.0对存储I/O控制进了控制,针对NFS存储提供了集群级的I/O份额和限制控制.当超出存储I/O延迟阈值时,存储I/O控制将自动限制正在消耗大量不相干的I/O带宽的虚拟机,避免了单台虚拟机可能引起的存储I/O瓶颈,

ajax的post提交方式和传统的post提交方式哪个更快?

如果同时用ajax和post提交先执行哪个呢?是ajax返回后再执行post呢还是同时执行? ajax的post提交方式和传统的post提交方式哪个更快? >> php 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/php/1010000007305642/ajax的post提交方式和传统的post提交方式哪个更快.html

定时器的应用---查询方式---让8个LED灯,左右各4个来回亮

定时器的应用,查询方式.让8个LED灯,左右各4个来回亮 代码: /********************** 查询方式是主程序不断的查询是否中断,而不需要准备子程序 ***********************/ #include<reg51.h> #define LED P1 #define COUNT 50000 // 50000 * 1us = 0.05s 50000计数次 #define TH_M1 (65536-COUNT)%256 //MODE 1 余数赋值给高4位 #dee

关于一对多,多对多的多表查询的控制

一.一对多 以班级Classes和学生Student为例: 回忆sql语句: //内链接,两种方式效果一样,查询的是两边都有的数据 SELECT c.*,s.* FROM classes c,student s WHERE s.cid=c.cid; SELECT c.cname,s.sname FROM classes c INNER JOIN student s ON s.cid=c.cid; //左外连接,在内链接基础上,左边表有而右边表没有,两种方式等效:SELECT c.* ,s.* F