/*============定时器中断的使用方法—---TF0(TF1)值硬件重置法========第一:打开总中断第二:打开定时器 中断第三:设置特殊功能寄存器TMOD,配置好工作模式。 第四:设置计数寄存器TH0和TL0的初值。 第五:设置TCON,通过TR0置1来让定时器开始计数。*///LE...
分类:
其他好文 时间:
2014-08-28 12:57:29
阅读次数:
200
STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。TIM1和TIM8是能够产生3对PWM互补输出的高级定时器,常用于三相电机的驱动,时钟由APB2的输出产生;TIM2-TIM5是普通定时器,TIM6和TIM7是基本定时器...
分类:
其他好文 时间:
2014-08-27 18:27:48
阅读次数:
254
定时器的中断处理程序要保证高效率,需要进行一些优化,这里介绍优化的方法。对于一个操作系统来说,会有多个定时器,假设该操作系统维护了500个定时器,当每一次定时中断发生时(这里我们设定1秒发生100次中断),调用中断处理程序,中断处理程序会对这500个定时器进行if判断,看哪些正在被使用,这样1秒内,就会有500X100=10000次if判断,而中断处理程序最讲究节省时间。实际上,我们不必每发生一次...
分类:
其他好文 时间:
2014-08-09 23:17:29
阅读次数:
303
定时器和时间管理
系统定时器是一种可编程硬件芯片,它能以固定频率产生中断。该中断就是所谓的定时器中断,它所对应的中断处理程序负责更新系统时间,还负责执行需要周期性运行的任务。系统定时器和时钟中断处理程序是Linux系统内核管理机制中的中枢。
另外一个关注的焦点是动态定时器——一种用来推迟执行程序的工具。比如说,如果软驱马达在一定时间内都未活动,那么软盘驱动程序会使用动态定时器关闭软驱马达。内核...
分类:
系统相关 时间:
2014-08-07 13:07:00
阅读次数:
302
数码管显示00~59按键1每按一次显示值加一,按键2每按一次显示值减一,按键3功能归零,按键4启动或停止定时器0
#include
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sb...
分类:
其他好文 时间:
2014-07-18 22:04:02
阅读次数:
228
#include
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit led1=P1^0;
uchar code table[]=
{
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,
0x7...
分类:
其他好文 时间:
2014-07-18 21:24:27
阅读次数:
208
在上位机上用串口调试助手发送一个字符X,单片机收到字符后返回给上位机“I get X”,串口波特率设为9600bps。
#include
#define uchar unsigned char
unsigned char flag,a,i;
uchar code table[]="I get";
void init()
{
TMOD=0x20; //设定T1定时器的工作模式2
...
分类:
其他好文 时间:
2014-07-18 21:23:22
阅读次数:
193
在使用stm32的通用定时器定时中断的时候,发现定时器在完成初始化配置后,定时器UIF位会立刻置位,导致在使能中断后,程序会立刻进入定时器中断。如果设计代码时不希望定时器配置完成后,立刻进入中断,可以在定时器配置完成后,立刻清除UIF标志位(TIMx->SR&=0xFFFE),再使能定时器更新中断。...
分类:
其他好文 时间:
2014-07-03 00:40:00
阅读次数:
311