EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
定时器/计数器的应用实例3 P* B( f( R) l( N
a" _& x' Z' g' F0 c
1 m+ u8 {& y; J; Y( N) X, k. t ]
在实时系统中,定时通常使用定时器,这与软件循环的定时完全不同。虽然两者都是依赖系统时钟,但是在定时器计数时,其它指令可以继续进行,但软件定时时不允许其它任何事件发生。 对许多连续计数和持续时间操作,最好使用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的方波。
* I1 p1 ^1 ~/ R- U$ g
, ]. O% Y* |9 q |