首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

51定时器的有关问题

2012-05-08 
51定时器的问题如果定时为10us,然后每10us触发timer()函数,函数体如下if (a 0)b ++ elseb 0 这几条

51定时器的问题
如果定时为10us,然后每10us触发timer()函数,函数体如下

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

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

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

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

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

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

热点排行