当前位置: 代码迷 >> 单片机 >> 51定时器的有关问题
  详细解决方案

51定时器的有关问题

热度:3   发布时间:2016-04-28 15:59:09.0
51定时器的问题
如果定时为10us,然后每10us触发timer()函数,函数体如下

if (a == 0)
b ++ ;
else
b = 0 ;

这几条语句的执行时间会不会很长,超过10us,没执行完,函数再一次触发,乱套了啊

------解决方案--------------------
如果你需求很精确的10US的话你得找个速度快点的
------解决方案--------------------
定时器中断是不是会自己嵌套的

正在响应中断的时候,定时器是没有重新复位的,而是在中断响应完成之后,对会清除中除标志重新开始定时

代码的问题应该出在别的地方

另外,LS说得不错,10微秒对一般的51来说,是有点太短了,最好换个性能好一点的芯片实现
------解决方案--------------------
51的中断是不会打断同等优先级(自己)的中断,中断函数过长会产生中断丢失,但不会乱套
  相关解决方案