
TL0)做加一运算薯银。
方法二:
T1定时器模式,T0计数器模式,在T1定时器中断子程序中对某一固定引脚Px.x做“置1-清0-置卜册1” *** 数弊宴作,并将对应引脚连接在T0(P3.4)引脚。默认情况下T0中断比T1中断权限高,每次定时器T1溢出后,会在中断子程序内对引脚Px.x进行“置1-清0-置1”,过程中1到0的下降沿跳变会引起(TH0
TL0)加一;直到计数器T0溢出前的“置1-清0”时刻后“置1”时刻前,T0产生溢出中断,中断T1的中断子程序。
比较:
如果仅仅为了计算“T1定时器的溢出次数”的话,随便定义两个字节的“内部RAM数据存储器”就可以了,和方法一类似,在中断子程序中,对寄存器内数值加一,完全可以实现。
用T0算T1太浪费资源了!
定义“内部RAM数据存储器”计算“T1定时器的溢出次数”的程序:
可以用Keil仿真以下,能看出效果的!
你把脉冲输入接到p3.4(或者p3.5)上吧,然后把定时器0(或者定时器1)改成计数模式,最多能计数65536个脉冲,不知道能不能满足你的历携贺要求,如果不能满足,那就中断之隐塌后记下中断次数,定时器清0重新计数,最后65536乘上中断次数就行了定时器/计数器计数的时候不会占用cpu的时间,所以只要不溢出中肢派断不会增加程序的运行时间,而且计数也准确啊
还有啊,看下你的ad是不是也可以接成中断的方式
1,cpu运行,和定时凳冲岩器是并行进行的.2,cpu在工作中,得到了定时中断,那么它停止手头的工作去中断请求中服务,完成服务,返回原来的断点位置继续工作,
3,如果在中断服务中,定时器不关,那么在cpu执行服务判弊时,定时器是工作的.一枣御般建议关掉,执行完再打开.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)