EDN首页   博客首页

最新日志

发表于:2007-8-21 19:36:58
标签:ST7  ST9  ST  

0

ST7 16位通用定时器中的输出比较功能(Output Compare)详解

来至 21ic.com 作者: 浪淘沙


ST7的16位通用定时器有常见的输入捕获和输出比较功能,在英文资料中输入捕获=Input Capture,输出比较=Output Compare;下面对输出比较功能做一个说明:

在16位的通用定时器中最关键的是一个16位的计数器,定时器中输入时钟是由CPU的时钟分频得到,分频系数通常是2、4、8可选;当定时器开启后,计数器就开始计数,计数达到0xFFFF时自动从0x0000开始计数,熟悉51的朋友特别要注意,只要定时器不停这个计数器就永远不会停止,除非关闭定时器否则无法停止计数器


理解了定时器中计数器的工作方式,理解输出比较功能就容易了;输出比较功能是由一个16位(2个8位构成)的输出比较寄存器和输出比较电路组成(请看下 图),程序员把要比较的数值写入输出比较寄存器后,当计数器的值与输出比较寄存器的值相同时,相应的状态位就会置位,如相应的中断开放则有对应的中断产 生。


附件是一个STVD7的项目文件,演示了用输出比较功能实现的计时功能:
〉本程序每10us产生一个输出比较中断
〉每次输出比较中断中会将输出比较寄存器的内容加上一个固定的值,使得10us后在产生一个中断
〉每次中断程序中将变量TimerTick加一
〉主循环在TimerTick达到一个预定的值后退出
〉设TimerTick=100时退出主循环,再设TimerTick=200时退出主循环做一次,比较两次的运行时间验证程序的正确性。

下两个图分别是两次执行的结果,从执行时间看,程序正确!
点击看大图

点击看大图

http://bbs.21ic.com/upfiles/img/2006830171113451.zip

系统分类: 嵌入式   |    用户分类: 无分类    |    来源: 无分类

评论(0) | 阅读(630)
总共 , 当前 /