zigbee学习之定时器

简介:

以下是我自己的总结,我不会分析代码,代码简单讲起来没有好大意思,主要是抓住核心知识框架。

脉冲:32MHZ就是一秒钟32000000个脉冲

时钟周期:1/f=1/32us
指令周期等于时钟周期(在51中是机械周期=12*时钟周期)
内部是16MHZ,定时器内部一个脉冲,定时器计数就加一


定时器 1(查询法)
T1CTL寄存器 定时器1控制和状态:
T1CTL (Bit 3:2) 分频器划分值,如下: 
00: 标记频率/1 
01: 标记频率/8 
10: 标记频率/32 
11: 标记频率/128 
T1CTL (Bit 1:0) 选择定时器1模式 
00: 暂停运行。 
01: 自由运行,从0x0000到0xFFFF反复计数。 
10: 模,从0x0000到T1CC0反复计数。 
11: 正计数/倒计数,从 0x0000 到 T1CC0 反复计数并
且从 T1CC0 倒计数到 0x0000。 


T1STAT(0xAF)定时器 1 状态:
Bit5: 定时器 计数器溢出中断标志//设置为1
Bit4: 定时器 1 通道 4 中断标志 
Bit3: 定时器 1 通道 3 中断标志 
Bit2: 定时器 1 通道 2 中断标志 
Bit1: 定时器 1 通道 1 中断标志 
Bit0: 定时器 1 通道 0 中断标志 


IRCON(0xC0) 中断标志 4 :
Bit1: 定时器1中断标志。当定时器1中断发生时设为1并且当CPU向量指向
中断服务例程时清除。 0: 无中断未决 1: 中断未决 


T1CTL = 0x0d; //128分频,自动重装 0x0000-0xFFFF 1/(16000000/128)*65536= 0.5248s
T1STAT= 0x21; //通道0,中断有效  
if(IRCON > 0) IRCON=0;


定时器3

T3CTL定时器3控制
[7:5]分频器划分值。产生有效时钟沿用于来自 CLKCON.TICKSPD 的定时器时钟 。如 下
000 : 标记 频率 /1
001 : 标记 频率 /2
010 : 标记 频率 /4
011 : 标记 频率 /8
100 : 标记 频率 / 1 6
101 : 标记 频率 / 3 2
110 : 标记 频率 / 6 4
111 : 标记 频率 / 1 28
[4]  启动定时器。正常运行时设置 ,暂停时清除,1启动。
[3]  溢出中断屏蔽0 :中断禁止 1 :中断使能
[2]  计数器。 写 1 到 CLR 复位 计数器 到 0x00 ,并初始化相关通道所有的输出引脚。总是读作 0 。
[1:0]定时器3模式。选择以下模式:
0 0 : 自由运行 , 从 0x0 0 到 0xFF 反复计数
0 1 : 倒计数 , 从 T3CC 0 到 0 x 0 0 计数
1 0 : 模 , 从 0x0 0 到 T3 C C0 重复计数
1 1 : 正 / 倒计 数 , 从 0 x0 0 到 T3C C0 重复计数,降到 0x00

void InitT3()
{     
    T3CTL |= 0x08 ;          //定时器3控制,开溢出中断     
    T3IE = 1;                //开总中断和T3中断
    T3CTL |= 0xE0;           //128分频,128/16000000*N=0.5S,N=62500
    T3CTL &= ~0x03;          //自动重装 00->0xff  62500/255=245(次)
    T3CTL |= 0x10;           //启动
    EA = 1;                  //开总中断
}


//定时器T3中断处理函数
#pragma vector = T3_VECTOR//(T3_VECTOR向量地址) 
__interrupt void T3_ISR(void) 

    IRCON = 0x00;            //清中断标志, 也可由硬件自动完成 
}
目录
相关文章
Arduino入门笔记(7):利用1602、1302实现时钟和定时器
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604       常常听到老妈在做饭时说“开锅15分钟后叫我一下”,为何不做个定时器,来提醒老妈呢?结合前面学习的知识,再加上1302时间模块,我决定自己做一个。
1886 0
|
8月前
|
测试技术
STM32异步通讯点灯
通过使用STM32的异步通讯配合上位机自己制作的串口通讯助手实现点灯
84 0
PLC的脉冲定时器是怎样工作的?西门子S7-300脉冲S5定时器如何使用?
本篇我们以西门子S7-300的脉冲S5定时器S_PULSE为例来讲解一下PLC的脉冲定时器是怎样工作的
PLC的脉冲定时器是怎样工作的?西门子S7-300脉冲S5定时器如何使用?
|
存储 监控
西门子S7-1200编程实例,脉冲定时器指令如何使用?
在西门子S7-1200中有四种类型的定时器:接通延迟定时器TON、保持型接通延迟定时器TONR、关断延迟定时器TOF、脉冲定时器TP。
西门子S7-1200编程实例,脉冲定时器指令如何使用?
|
传感器
STM32小项目总结2:(内含:1.对射式红外传感器计次+2.旋转编码器计次+3.定时器定时中断+4.定时器外部中断+5.笔记)
STM32小项目总结2:(内含:1.对射式红外传感器计次+2.旋转编码器计次+3.定时器定时中断+4.定时器外部中断+5.笔记)
254 0
STM32小项目总结2:(内含:1.对射式红外传感器计次+2.旋转编码器计次+3.定时器定时中断+4.定时器外部中断+5.笔记)
|
消息中间件 传感器 Ubuntu
ESP32-C3入门教程 基础篇(六、TIMG 硬件定时器 与 软件定时器)
到了测试第6课,还没有玩过ESP32-C3的基本定时器,虽然FreeRTOS,可以使用软件定时器 但是软件定时器毕竟也有不适用的时候,这个在我FreeRTOS博文中有单独说明。 所以硬件定时器也得熟悉,同时附带简单用一下软件定时器。
745 0
ESP32-C3入门教程 基础篇(六、TIMG 硬件定时器 与 软件定时器)
51单片机定时器原理及相关器件
本篇文章讲述单片机定时器的工作原理及使用方法。
139 0
51单片机定时器原理及相关器件
|
C语言
4.1 51单片机-定时器使用
4.1 51单片机-定时器使用
359 0
4.1 51单片机-定时器使用