一楼的办法对于一般计数器不可行,因为中断的时候,计数器已经溢出了。
楼主希望的这个结果有两种办法可以实现:
1、门空位,GATE,也就是TMOD中的gate,如果这一位是1,也就是使定时器除了受本身TRX控制外,还受外部中断的控制,如果外部中断为低电平,定时器就不能运行。
2、使用带有捕获功能的定时器。像AT89S52这样的带有T2定时器的单片机可以做到,也就是说,当外部来信号引发中断后,T2可以停止计时,此时可以读出计数值。
两种方法比较一下,第一种可以在一般单片机上运行,只是要浪费一个外部中断资源。第二个比较方便,省资源,就是单片机要稍微用的好一些。
PS:有捕获功能的单片机很多。
单片机计数只是每来一个信号产生一个中断
实际还是需要我们自己手动在这个中断程序里对寄存器进行累计
所以寄存器是我们自己指定的
有两种办法可以实现:
1、门空位,GATE,也就是TMOD中的gate,如果这一位是1,也就是使定时器除了受本身TRX控制外,还受外部中断的控制,如果外部中断为低电平,定时器就不能运行。
2、使用带有捕获功能的定时器。像AT89S52这样的带有T2定时器的单片机可以做到,也就是说,当外部来信号引发中断后,T2可以停止计时,此时可以读出计数值。
两种方法比较一下,第一种可以在一般单片机上运行,只是要浪费一个外部中断资源。第二个比较方便,省资源,就是单片机要稍微用的好一些。