[求助] 定时中断程序.是赋值完之后就开始重新计时? 还是退出中断服务程序后才开始重新计时?

wuzhisheng2007   2012-2-23 13:34 楼主
void Timer0Interrupt(void) interrupt 1
{
    TH0 =0x63;
    TL0 =0x18; //这里赋值好了 就开始计时吗
     timer++;
} /还是退出了才开始计时

回复评论 (18)

回复 楼主 wuzhisheng2007 的帖子

TH0 =0x63;
TL0 =0x18;
这个赋值 是Xms的 时间
中断1次 timer++ 计时Xms  直到你想要的N Xms 时间
timer为N
还是退出了才开始计时???这个没明白 你啥意思
点赞  2012-2-23 13:55
退出来之后才开始计时吧
点赞  2012-2-23 14:15

回复 板凳 常见泽1 的帖子

感觉 像是 在中断里计时
退出后到达规定时间
不是很懂
点赞  2012-2-23 14:23

是这样的

不是都说 服务程序里面尽量短嘛 是不是 因为退出来之后才开始计时 如果是退出来才开始计时 那我在服务程序里面写很多代码那不是完蛋了 定时就非常不准了
点赞  2012-2-23 15:45

回复 沙发 51学习者 的帖子

给定时器重新赋值了 定时器不是要重新开始计时嘛 那么是退出服务程序才计时还是一重新赋值就已经开始计时 这其中可是相差很多的
点赞  2012-2-23 15:47
重新赋值就已经开始计时
我是这样想到
中断就是 开始  中断程序 结束 3个步骤 对吧
要是在结束后(退出中断后)才计时的话 就不应该算中断里的了
你认为呢
点赞  2012-2-23 15:59

回复 7楼 51学习者 的帖子

其实 有一位回答者的观点与你一样的 我就是不确定呢 呵呵
点赞  2012-2-23 16:47

回复 板凳 常见泽1 的帖子

退出中断然后开始计时的啊。。。。
点赞  2012-2-23 19:48
我觉得应该是一直都在计时阿,,,,
点赞  2012-2-23 23:02
一直都在计时,因为中断函数也是函数,和主函数没什么区别,本质上讲,假如中断函数不计时,那主函数也应该不计时。那还计个屁啊。。
点赞  2012-2-24 10:42

回复 11楼 重庆破锅 的帖子

嗯 这位哥们看问题的方法挺独特的 有道理呀 不过用c语言写的 在编译的时候 中断函数有个什么加工过程而不同于其他函数那就不清楚了
点赞  2012-2-24 13:19
个人理解是在完成赋值之后就开始计时,后面的timer++;是溢出之后的事情了
点赞  2012-2-24 16:17
试这个看TH0TL0=多少就知道了
{
u8 i=10;
    TH0 =0x63;
    TL0 =0x18; //这里赋值好了 就开始计时吗
      while(i--);
     T?=0;//定时器停止
}
点赞  2012-2-25 02:23

进去时应把定时关了

void Timer0Interrupt(void) interrupt 1
{
   TR0=0;
   TH0 =0x63;
    TL0 =0x18; //这里赋值好了 就开始计时吗
     timer++;
    TR0=1;
}

如果不这样写,按楼主那样写完就记时的
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2012-2-25 08:39
赋完值立马计数,,所以说中断程序里边其他的程序不要太大,不然还没有跳出中断就又来中断了,,这就乱了
点赞  2012-2-25 09:09

回复 16楼 kobe1941 的帖子

嗯 谢谢呢 总结下就是 赋值完就开始计时了
点赞  2012-2-25 13:25
呵呵  我也差不多动了呀
点赞  2012-3-7 18:48
呵呵,乱了
油画|http://www.chndafen.com
点赞  2012-3-7 22:32
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复