标题: 单片机程序有语法错误吗?为什么程序执行到if(ten_led==0)这里就不向下执行了 请指导 [打印本页]

作者: zcwjzwd    时间: 2023-10-20 23:48
标题: 单片机程序有语法错误吗?为什么程序执行到if(ten_led==0)这里就不向下执行了 请指导
void timer0_int (void) interrupt TIMER0_VECTOR
{      
              count++;
              if(count==5)
                                {
                                  count=0;
                            ten_led=!ten_led;
                                        if(ten_led==0)
                                        {
                                                hc595_sentdate(table[unit]);
                                        }
                        
                                
                    }
           
           
         
        
}
这里面有语法错误吗?为什么程序执行到if(ten_led==0)这里就不向下执行了?


作者: Hephaestus    时间: 2023-10-21 00:10
没有完整代码,你又没有仿真器监视变量的实际值,只能说是你没想到的地方发生的错误。
作者: npn    时间: 2023-10-21 07:53
ten_led 、 count是什么类型的变量?
TIMER0_VECTOR 常量的值是多少?
hc595_sentdate 函数里是什么?
程序不全没人能回答你的问题。
作者: zhuls    时间: 2023-10-21 09:00
编译不报错,代码下走不下去,就去查查下一条语句是否有问题:hc595_sentdate(table[unit]);
作者: wulin    时间: 2023-10-21 09:12
如果ten_led是位变量不会进不去,如果ten_led是char变量且等于0xff取反等于0x00也能进去,否则0x01--0xfe任何数取反都不可能满足ten_led==0的条件。
ten_led=!ten_led;
if(ten_led==0)
{
作者: zcwjzwd    时间: 2023-10-21 21:19
wulin 发表于 2023-10-21 09:12
如果ten_led是位变量不会进不去,如果ten_led是char变量且等于0xff取反等于0x00也能进去,否则0x01--0xfe任 ...

ten_led为IO口,程序不能执行if(ten_led==0)这条语句,
作者: zcwjzwd    时间: 2023-10-21 22:23
wulin 发表于 2023-10-21 09:12
如果ten_led是位变量不会进不去,如果ten_led是char变量且等于0xff取反等于0x00也能进去,否则0x01--0xfe任 ...

找到原因了,硬件问题,谢谢了
作者: zcwjzwd    时间: 2023-10-21 22:24
找到原因了硬件问题,谢谢各位了!
作者: 圣博朗西斯    时间: 2023-10-27 11:23
程序没问题




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1