EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
定时器/计数器的应用实例5 y4 u; ~8 Y/ v: Y8 Y' H6 p7 z
: p1 V" W$ d' W+ }; O
' O9 `# R) [% i; E* t1 V在实时系统中,定时通常使用定时器,这与软件循环的定时完全不同。虽然两者都是依赖系统时钟,但是在定时器计数时,其它指令可以继续进行,但软件定时时不允许其它任何事件发生。 对许多连续计数和持续时间操作,最好使用16位定时/计数器。当计数器翻转后,它会继续计数。若在计数开始或定时时间间隔开始读出计数器的值,在计数或时间间隔结束时从读出值中减去开始时的读出值,则所得计数数值为其间的计数或持续的时间间隔。假设定时器用于V-F(电压到频率)转换器信号的周期测量。若当逻辑1到来时计数值为3754,下一个逻辑1到达时是4586,则V-F转换器的周期是832个机器周期。使用12MHz晶振为832μs(1.202kHz),使用11.0592MHz晶振,计数值近似903μs(1.071kHz)。当计数值有翻转时,只要计数值以16位无符号整数对待就无算术问题。 例1 设单片机的fosc=12MHz,要求在P1.0脚上输出周期为2ms的方波。 . f" H- N3 E( C) Y& V
5 C s$ ?3 |* c
|