找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 431|回复: 8
收起左侧

单片机程序有语法错误吗?为什么程序执行到if(ten_led==0)这里就不向下执行了 请指导

[复制链接]
ID:493146 发表于 2023-10-20 23:48 | 显示全部楼层 |阅读模式
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)这里就不向下执行了?

回复

使用道具 举报

ID:883242 发表于 2023-10-21 00:10 | 显示全部楼层
没有完整代码,你又没有仿真器监视变量的实际值,只能说是你没想到的地方发生的错误。
回复

使用道具 举报

ID:57657 发表于 2023-10-21 07:53 | 显示全部楼层
ten_led 、 count是什么类型的变量?
TIMER0_VECTOR 常量的值是多少?
hc595_sentdate 函数里是什么?
程序不全没人能回答你的问题。
回复

使用道具 举报

ID:69038 发表于 2023-10-21 09:00 | 显示全部楼层
编译不报错,代码下走不下去,就去查查下一条语句是否有问题:hc595_sentdate(table[unit]);
回复

使用道具 举报

ID:213173 发表于 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)
{
回复

使用道具 举报

ID:493146 发表于 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)这条语句,
回复

使用道具 举报

ID:493146 发表于 2023-10-21 22:23 | 显示全部楼层
wulin 发表于 2023-10-21 09:12
如果ten_led是位变量不会进不去,如果ten_led是char变量且等于0xff取反等于0x00也能进去,否则0x01--0xfe任 ...

找到原因了,硬件问题,谢谢了
回复

使用道具 举报

ID:493146 发表于 2023-10-21 22:24 | 显示全部楼层
找到原因了硬件问题,谢谢各位了!
回复

使用道具 举报

ID:1097455 发表于 2023-10-27 11:23 | 显示全部楼层
程序没问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表