void Timer0Interrupt(void) interrupt 1
{
TH0 =0x63;
TL0 =0x18; //这里赋值好了 就开始计时吗
timer++;
} /还是退出了才开始计时
回复 楼主 wuzhisheng2007 的帖子
TH0 =0x63;
TL0 =0x18;
这个赋值 是Xms的 时间
中断1次 timer++ 计时Xms 直到你想要的N Xms 时间
timer为N
还是退出了才开始计时???这个没明白 你啥意思
是这样的
不是都说 服务程序里面尽量短嘛 是不是 因为退出来之后才开始计时 如果是退出来才开始计时 那我在服务程序里面写很多代码那不是完蛋了 定时就非常不准了
回复 沙发 51学习者 的帖子
给定时器重新赋值了 定时器不是要重新开始计时嘛 那么是退出服务程序才计时还是一重新赋值就已经开始计时 这其中可是相差很多的
重新赋值就已经开始计时
我是这样想到
中断就是 开始 中断程序 结束 3个步骤 对吧
要是在结束后(退出中断后)才计时的话 就不应该算中断里的了
你认为呢
回复 7楼 51学习者 的帖子
其实 有一位回答者的观点与你一样的 我就是不确定呢 呵呵
回复 板凳 常见泽1 的帖子
退出中断然后开始计时的啊。。。。
一直都在计时,因为中断函数也是函数,和主函数没什么区别,本质上讲,假如中断函数不计时,那主函数也应该不计时。那还计个屁啊。。
回复 11楼 重庆破锅 的帖子
嗯 这位哥们看问题的方法挺独特的 有道理呀 不过用c语言写的 在编译的时候 中断函数有个什么加工过程而不同于其他函数那就不清楚了
个人理解是在完成赋值之后就开始计时,后面的timer++;是溢出之后的事情了
试这个看TH0TL0=多少就知道了
{
u8 i=10;
TH0 =0x63;
TL0 =0x18; //这里赋值好了 就开始计时吗
while(i--);
T?=0;//定时器停止
}
进去时应把定时关了
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
赋完值立马计数,,所以说中断程序里边其他的程序不要太大,不然还没有跳出中断就又来中断了,,这就乱了
回复 16楼 kobe1941 的帖子
嗯 谢谢呢 总结下就是 赋值完就开始计时了
呵呵,乱了
油画|http://www.chndafen.com