一、实验内容

分别使用定时器T1和T3使得LED周期性闪烁

二、实验过程

1、定时器T1(查询IRCON来控制)

(1)需要调配的寄存器

T1CTL(0XE4) Timer1控制寄存器
  BIT3,BIT2:定时器分频倍数选择
00:不分
01:8分频
10:32分频
11:128分频
  BIT1,BIT0:定时器模式选择:
00:暂停
01:自动重装:0X0000—0XFFFF
10:比较计数:0X0000—T1CC0
11:PWM方式
T1STAT(0XAF) Timer1状态寄存器:
  BIT5:OVFIF
定时器溢出中断标志,在数值达到计数终值时置为1.
 

Bit4: 定时器 1 通道 4 中断标志位
Bit3: 定时器 1 通道 3 中断标志位
Bit2: 定时器 1 通道 2 中断标志位
Bit1: 定时器 1 通道 1 中断标志位
Bit0: 定时器 1 通道 0 中断标志位

IRCON(0XCO) 中断标志位寄存器;

(2)定时器T1的初始化:

T1CTL=0X0d;
T1STAT=0X21;

(3)代码实现

#include<ioCC2540.h>

#define LED1 P1_0    //定义LED1,方便查阅代码

void Init()//初始化函数
{
P1SEL = 0X00; //实现LED的初始化
P1DIR = 0X01;
P1INP = 0X00;
LED1 = 0; T1CTL = 0X0d; //128分频,自动重装0X0000-0XFFFF;,时钟频率为16MHZ
T1STAT = 0X21; //通道0,中断有效
EA=1;
} void main(void)
{
Init();
unsigned char count=0; while(1)
{
if(IRCON>0) //检查是否置位为1
{
IRCON=0;
count++; //由于分频128后,已经满足1s的闪烁周期。 if(count>=1)
{
count=0;
LED1=~LED1;
}
}
}
}

2、定时器T3(中断方式)

(1)需要调配的寄存器

T3CTL(0XCB) Timer3:控制寄存器
  BIT7,BIT6,BIT5:定时器时钟分频倍数选择

000:不分频

001 :2 分频

010 : 4 分频

011 : 8分频

100 :16 分频

101 :32 分频

110 : 64 分频

111 :128分频

  BIT4:T3起止控制位
  BIT3:溢出中断掩码
0:关中断溢出
1:开中断溢出
  BIT2:清计数值,高电平有效
  BIT1,BIT0:T3模式选择:

00 :自动重装 0X00 -0XFF
01 : DOWN ( 从 T3CC0 到 0X00 计数一次 )
10 : 模计数(反复从 0X00 到 T3CC0 计数)
11 : UP/DOWN( 反复从 0X00 到 T3CC0计数再到 0X00)

T3CCTL0(0XCC) T3通道 0 捕获/比较控制寄存器
  BIT6:T3通道 0 中断掩码
0:关中断,1:开中断
  BIT5,BIT4,BIT3:T3通道 0 比较输出模式选择
  BIT2:T3通道 0 模式选择:
0:捕获     1:比较
  BIT1,BIT0:T3通道 0 捕获模式选择:

00 没有捕获

01 上升沿捕获

10 下降沿捕获

11 边沿捕获

T3CC0(0XCD) T3 通道 0 捕获 / 比较寄存器
T3CCTL1(0XCE) T3通道 1 捕获/比较控制寄存器
  BIT6:T3通道1中断掩码
0:关中断,1:开中断
  BIT5,BIT4,BIT3:T3通道 1 比较输出模式选择
  BIT2:T3通道 1 模式选择:
0:捕获     1:比较
  BIT1,BIT0:T3通道 1 捕获模式选择:

00 没有捕获

01 上升沿捕获

10 下降沿捕获

11 边沿捕获

T3CC1(0XCF) T3 通道 1 捕获 / 比较寄存器

定时器T3有 4种工作模式:分别是自由、正计数 /倒计数模式、 倒计数模式。

(2)代码实现(使用自由模式)

无法解析此远程名称: 'util.cnblogs.com#include<ioCC2540.h>

#define LED1 P1_0    //定义LED1,方便查阅代码

unsigned char count=0;

void Init()//初始化函数
{
P1SEL = 0X00; //实现LED的初始化
P1DIR = 0X01;
P1INP = 0X00;
LED1 = 0; T3CTL = 0X08; //开溢出中断
T3IE = 1; //开纵中断和T3中断
T3CTL |= 0XE0; //开128分频,128/(16*10e6)*N=0.5s,N=65536;
T3CTL &= ~0x03; //自动重装 貌似溢出的数值改变成256.。不懂为什么。。
T3CTL |= 0X10; //2分频(16MHZ),然后就是开始启动
EA=1; //打开中断总闸 } void main(void)
{
Init(); while(1)
{ }
} #pragma vector = T3_VECTOR
__interrupt void fu()
{
IRCON = 0x00; //清除中断标志
count++;
if(count>250)
{
count = 0;
LED1=~LED1;
}
}

CC2540开发板学习笔记(四)——定时器的更多相关文章

  1. CC2540开发板学习笔记(五)——串口通信

    (一)串口发送 一.实验现象: 开发板实现功能发送 二.实验过程 1.PL2303 USB转串口电路图 2.串口发送 (1)查看用户手册有: UART0 对应的外部设备 IO 引脚关系为: P0_2 ...

  2. CC2540开发板学习笔记(三)——外部中断

    一.实验内容 通过外部中断方式依次按下按键S1控制LED1的亮灭 二.实验过程 1.电路原理图同上 2.中断的概念 比如说我们在执行main函数时,突然来了个指令.优先级比现在执行的main还高,那我 ...

  3. CC2540开发板学习笔记(二)——按键

    一.实验内容 用按键S1控制LED1的亮和灭 二.实验过程 1.电路原理: 可以看出,当S按下P0.0和P0.1接地,反之则接高电压. 2.寄存器使用: 依旧应该首先进行3个基本寄存器的设定,对LED ...

  4. CC2540开发板学习笔记(七)—— 睡眠唤醒

    (一)中断唤醒 一.实验内容 通过中断唤醒在睡眠模式下的CC2540 二.实验原理 1.系统电源管理(工作方式) (1)全功能模式: 高频晶振(16M或者32M)和低频晶振(32.768K RCOSC ...

  5. CC2540开发板学习笔记(九)—— BLE协议简介

    一.BLE协议简介 1.协议是什么? 协议是一系列的通信标准,双方需要共同按照这进行正常数据 协议是一系列的通信标准,双方需要共同按照这进行正常数据发射和 接收.协议栈是的具体实现形式,通俗点来理解就 ...

  6. CC2540开发板学习笔记(一)——LED点亮

    一.实验内容: 点亮LDE1.2 二.实验原理: 1.电路原理图: 就一个发光二极管串联一个电阻.电阻是为了防止电流过大.利用发光二极管的单向导电性,在P1为高电平是点亮LED,在低电平是熄灭LED. ...

  7. CC2540开发板学习笔记(八)—— 看门狗

    一.功能: 防止程序跑飞,使得系统重新进入工作状态,即一种复位操作吧. 但需要不停地喂狗= =(就是不断的执行某种操作),假如说你的程序跑到了不知道哪里去的错误时,即不会实现喂狗,就会发生复位,程序就 ...

  8. CC2540开发板学习笔记(六)——AD控制(自带温度计)

    一.实验目的 将采集的内部温度传感器信息通过串口发送到上位机 二.实验过程 1.寄存器配置 ADCCON1(0XB4)ADC控制寄存器1 BIT7:EOC   ADC结束标志位0:AD转换进行中    ...

  9. 【4412嵌入式开发板学习笔记】认识uboot

    转自迅为讨论群:http://www.topeetboard.com 重要说明:这份笔记不是4412开发配套的,是我在网上看视频的时候下载上课老师的笔记后修改的.所以我试了一下笔记上的uboot命令, ...

随机推荐

  1. Android Broadcast Receiver 使用入门

    Broadcast Receiver 的使用        1.Broadcast Receiver简介        2.Broadcast Receiver接收系统自带的广播        3.自 ...

  2. HDU 1513 Palindrome(最长公共子序列)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1513 解题报告:给定一个长度为n的字符串,在这个字符串中插入最少的字符使得这个字符串成为回文串,求这个 ...

  3. [Effective JavaScript 笔记]第35条:使用闭包存储私有数据

    js的对象系统并没有特别鼓励或强制信息隐藏.所有的属性名都是一个字符串,任意一个程序都可以简单地通过访问属性名来获取相应的对象属性.例如,for...in循环.ES5的Object.keys()和Ob ...

  4. notepad正则表达式

    文件名称匹配 文件名称: boost_chrono-vc100-mt-1_49.dll 对应的notepad正则表达式: \w*_\w*-\w*-\w*-\w*-\w*.dll 移除空行 查找目标: ...

  5. 异常:The absolute uri: http://www.springframework.org/security/tags cannot be resolved in either web.xml or the jar files deployed with this application

    The absolute uri: http://www.springframework.org/security/tags cannot be resolved in either web.xml ...

  6. ROS2.9.27架设网吧软路由实战篇之端口映射与回流

    转载:http://blog.csdn.net/zm2714/article/details/7924280 上一篇:ROS2.9.27架设网吧软路由实战篇之连通网络,主要讲述了网吧架设软路由ROS2 ...

  7. CSS3弹性盒模型flexbox完整版教程

    http://caibaojian.com/flexbox-guide.html 来自CSS Tricks上的一个教程,原文为:A Complete Guide to Flexbox.文中详细的介绍了 ...

  8. FastCgi与PHP-fpm之间是个什么样的关系

    刚开始对这个问题我也挺纠结的,看了<HTTP权威指南>后,感觉清晰了不少. 首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者. ...

  9. 【SpringMVC】SpringMVC系列5之@RequestHeader 映射请求头属性值

    5.@RequestHeader 映射请求头属性值 5.1.概述 请求头包含了若干个属性,服务器可据此获知客户端的信息,通过 @RequestHeader 即可将请求头中的属性值绑定到处理方法的入参中 ...

  10. object-c面向对象1

    ---恢复内容开始--- 类,对象,方法,属性. 类是object-c一种重要的数据类型,是组成object-c程序的基本要素.object-c的类声明和实现包括两个部分:接口和实现部分. @inte ...