定时器配置有哪些步骤 55定时器使用方法?
55定时器使用方法?
准备:设置里特殊功能控制寄存器TMOD,配置如何好工作模式。
第二步:系统设置数器寄存器TH0和TL0的初始属性。
第十步:设置中TCON,通过TR0置1来让定时中断正在定时计数。
第四步:判断TCON通用寄存器的TF0位,时时监测计数器滴下的情况下。
写系统程序前,你们要先来学会换算怎么用时间继电器有定时一天的时间。我们也的晶振是11.0592M,时钟周期变化是1/11059200,机器本身周期变化是12/11059200,若果要按时20ms,那是0.02秒,要当经过x个机器本身周期变化能得到0.02秒,你们来算再看看x*12/110592000.02,能得到x18432。16位时间继电器的逸出值是65536(因65535再加1才是流出),索性我们现在就可以不这样的话能操作,先给TH0和TL0个当前值,让那些生物经18432个机器周期后刚好提升到65536,也就是溢出,滴下后是可以通过检测检测TF0的值打探出,就只是0.02秒。那么初始属性y65536-1843247104,转成16十六进制就是0x9b800,也就是TH04ea8,TL00x1200。
这样0.02秒的按时我们是就做成什么了,细心的同学啊会才发现,假如初始属性真接给两个0x110000,一直在到65536流出,外部中断每隔几小时值最大也就是71ms500左右,那你我们想每隔几小时更长时间内该怎么办呢?用你小学和中学学过的形式逻辑,乘积任何关系就也可以解决的办法此问题很简单。
完了,我们是下面就用程序启动来实现这个功能一样。
#include
ucharled灯P0^0;
uart1ADDR0P1^0;
uart1ADDR1P1^1;
sbitADDR2P1^2;
char*ADDR3P1^3;
#defineENLEDP1^4;
voidmain(){
size_tunsignedmos20;//定义方法三个计数中间变量,记录T0流出上限
ENLED0;//使能,选择独立led
ADDR31;
ADDR21;
ADDR11;
ADDR00;
TMOD0x2001;//设置中T0为其他模式1
TH00x9b8;//为T0赋属性值0xce800
TL00x2000;
TR01;//起动T0while(1)
stm32定时器中预分频系数是什么作用? 72MHz想要让定时器100次/s该怎么写配置代码?
999是装到值,7199是预套装喇叭系数,72M%(9991)%(71991)40hz,即10次/s,interrupt_merekat(TIM2,99,7199)利用的是100次/s。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。