标题:
单片机程序 为啥充电部分数码管数据没有实时刷新
[打印本页]
作者:
1481509156
时间:
2024-12-21 10:29
标题:
单片机程序 为啥充电部分数码管数据没有实时刷新
大佬们帮忙看下数码管显示部分,其中开机工作时可以正常刷新数据,但是我充电时没法实时刷新,是为啥?
else
{
CLRWDT();
//Timer0_INIT();
des_sever(); //接收数据
//if(RX_LVD==0x66){POWER=0;}
if(tc_flag==1)
{
if(RX==0) //充电拔电后关机休眠
{
rx_cnt++;
if(rx_cnt>50){K1_SDA=0;PIN9=1;PIN10=1;rx_cnt=0;tc_flag=0;POWER=0;}
}
else{rx_cnt=0;}
}
if(RX_NUM==0x88)//充电区域 ,档位不显示,电量闪烁
{
CLRWDT();
T0MD = 0X00;
tc_flag=1;
//lvd_h1=lvd;
//lvd_h2=lvd_h1+1;
if(RX_LVD==0x00)
{
LED_SCAN(0);
LED_SCAN1(6);
}
else
{
des_sever();
if(RX_LVD==0xE0)//满电
{
LED_SCAN(0);
LED_SCAN1(5);
CH_cnt=0;
//tc_flag=1;
}
else
{
if(RX_LVD==0x60)//4格3.9-4.2
{
if(CH_cnt<20000){lvd=4;}
else if(CH_cnt<40000){lvd=5;}
else{CH_cnt=0;}
}
else
{
if(RX_LVD==0xA0)//3格3.7-3.9
{
if(CH_cnt<20000){lvd=3;}
else if(CH_cnt<40000){lvd=4;}
else{CH_cnt=0;}
}
else
{
if(RX_LVD==0x20)//2格3.5-3.7
{
if(CH_cnt<20000){lvd=2;}
else if(CH_cnt<40000){lvd=3;}
else{CH_cnt=0;}
}
else
{
if(RX_LVD==0xC0)//1格,闪烁3.3-3.5
{
if(CH_cnt<20000){lvd=1;}
else if(CH_cnt<40000){lvd=2;}
else{CH_cnt=0;}
}
else
{
if(RX_LVD==0x40)//1格电,闪烁对应3.0-3.3V
{
if(CH_cnt<20000){lvd=1;}
else if(CH_cnt<40000){lvd=2;}
else{CH_cnt=0;}
}
else
{
if(RX_LVD==0x80) //0格电3.0以下
{
if(CH_cnt<20000){lvd=0;}
else if(CH_cnt<40000){lvd=1;}
else{CH_cnt=0;}
}
}
}
}
}
}
}
LED_SCAN(temp);
LED_SCAN1(lvd);
}
}
else //开机工作区域
{
//des_sever();
CLRWDT();
if(RX_NUM==0xF0)
{
SOP_H1=10000;
PIN9=PIN10=1;
POWER=0;K1_SDA=0;
}
else
{
if(RX_NUM==0x00 || RX_LVD==0x00)
{
temp=0;lvd=6;PIN9=PIN10=1;
}
else
{
if(RX_LVD==0x80)
{
PWM_H1=0;
if(PWM_C<3)//低电量闪烁三次关机
{
if(PWM_H2<12000){lvd=6;}
else if(PWM_H2<24000){lvd=7;}
else{PWM_H2=0;PWM_C++;}
}
else
{
POWER=0;K1_SDA=0;
}
}
else
{
PWM_H2=0;PWM_C=0; //低电量闪烁显示
if(RX_LVD==0x40)
{
if(PWM_H1<12000){lvd=0;}
else if(PWM_H1<24000){lvd=1;}
else{PWM_H1=0;}
}
else
{
PWM_H1=0;PWM_H2=0;
}
}
}
}
LED_SCAN(temp);
LED_SCAN1(lvd);
}
}
作者:
man1234567
时间:
2024-12-24 14:59
没有电路图和全套程序无法猜。
如果此程序某时刻能正常工作,那就找其他触发条件。
作者:
1481509156
时间:
2024-12-27 10:54
man1234567 发表于 2024-12-24 14:59
没有电路图和全套程序无法猜。
如果此程序某时刻能正常工作,那就找其他触发条件。
谢谢。已经解决了,是因为我定时器分频那里冲突了,充电部分和工作部分用的都是同一个定时器。需要错开才能分别使用,不然有一边是没法显示的
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1