51单片机定时器赋值为什么是65536???
TH0=(65536-50000)/256;//定时器T0的高八位赋初值TL0=(65536-50000)%256;//定时器T0的低八位赋初值16位0xFFFF不应是6...
TH0=(65536-50000)/256; //定时器T0的高八位赋初值
TL0=(65536-50000)%256;//定时器T0的低八位赋初值
16位0xFFFF不应是65535吗?怎么是65536?256怎么不是255? 展开
TL0=(65536-50000)%256;//定时器T0的低八位赋初值
16位0xFFFF不应是65535吗?怎么是65536?256怎么不是255? 展开
2个回答
展开全部
虽然定时器16位定时值最大值是0xFFFF没错,但是定时器从50000,每个时钟周期加1,是加到0xFFFF的下一个周期(0x10000,最高位溢出了),才会产生中断,而不是在0xFFFF = 65535的时候就产生了中断。
打个比方,你要计时2个时钟周期,那么你应该从65536 - 2 = 65534开始计,65534->65535,65535->溢出,而不是从65535-2 = 65533开始计,那样就成了3个时钟周期。希望能帮到你
打个比方,你要计时2个时钟周期,那么你应该从65536 - 2 = 65534开始计,65534->65535,65535->溢出,而不是从65535-2 = 65533开始计,那样就成了3个时钟周期。希望能帮到你
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询