EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
定时器/计数器的应用实例) d Q" E$ S. I" ]( f k
5 r1 p) ^, [& ^: N+ o+ Q! o5 R8 b3 W
9 u/ Y7 W$ w, D+ z在实时系统中,定时通常使用定时器,这与软件循环的定时完全不同。虽然两者都是依赖系统时钟,但是在定时器计数时,其它指令可以继续进行,但软件定时时不允许其它任何事件发生。 对许多连续计数和持续时间操作,最好使用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的方波。 ) q1 J7 H5 W- s& p6 X- s
' u3 _" E) d' G ]2 A. H |