程序如下:现象为每隔几秒就出现一个错误的 768ms电平,按道理应该是1000ms的高低电平交替
unsigned int SysTicktime; //系统节拍 1ms
void main(void)
{
Time0_int();
LED_GPIO_config();
while(1)
{
if(SysTicktime>1000)
{
P07=!P07;
SysTicktime=0;
}
}
}
void tm0_isr() interrupt 1
{
if(SysTicktime<=10000)SysTicktime++;
}
用STC仿真后发现在 SysTicktime=768的时候跳进去条件判断里了,导致电平翻转
将程序修改 > 改为 ==后 程序正常。
if(SysTicktime==1000)
{
P07=!P07;
SysTicktime=0;
}
1000ms一次翻转,输出正常。
不敢贴图了 ,编辑了好久的帖子。提示有问题,全部清理。吐槽一下21的发帖
|