Mam problemik z kodem w którym występują zależności na podstawie których załączane lub wyłączane są dwa obwody sieciowe oraz jest monitorowane napięcie ogniwa foto galwanicznego....zdefiniowane progi działają obwody są właściwie przełączane jednak nie funkcjonuje poprawnie podstawianie odpowiednich komunikatów tekstowych i nie potrafię doszukać się przyczyny.
//-----definicje zmiennych ADC
double aku;
double lad;
double sol;
double out;
double sensor;
//-----definicje progów napięciowych
float aku_min = 11.5;
float aku_max = 14.2;
float aku_stab = 14.0;
float sol_ref = 13.0;
float zas_ref = 10.0;
//----------------------------------
reszta kodu
//----------------------------------
char *napis=" ";
char napis1=" system czeka ";
char napis2="obwod rezerwy ";
char napis3="zasilanie siec ";
char napis4="zasilanie solar";
//--------------------------przełącznik obwodów
unsigned char val;
LCD_GoTo(20,0); LCD_WriteText(" ");
for(val=1; val<6; val++)
{
switch(val)
{
//--------------------------zasilanie główne
case 1:
if(sensor > zas_ref) //jeżeli jest nap.w obw.1
if((aku < aku_min)&&(sol < sol_ref))
PORTB &=~ 0x01; //załącz kanal 1
PORTB |= 0x02; //zablokuj kanal 2
LCD_GoTo(20,0); LCD_WriteText(napis3); //napis siec
break;
case 2:
if(sensor > zas_ref)
if((aku > aku_max)||(sol > sol_ref))
PORTB |= 0x01; //wyłącz kanal 1
PORTB |= 0x02; //zablokuj kanal 2
if (sol > sol_ref)
LCD_GoTo(20,0); LCD_WriteText(napis4); //napis solar
break;
//--------------------------zasilanie rezerwowe
case 3:
if(sensor < zas_ref) //jeżeli nie ma nap.w obw.1
if((aku < aku_min)&&(sol < sol_ref))
PORTB |= 0x01; //zablokuj kanal 1
PORTB &=~ 0x02; //załącz kanal 2
LCD_GoTo(20,0); LCD_WriteText(napis2); //napis rezerwa
break;
case 4:
if(sensor < zas_ref)
if((aku > aku_max)&&(sol > sol_ref))
PORTB |= 0x01; //zablokuj kanal 1
PORTB |= 0x02; //wyłącz kanal 2
if (sol > sol_ref)
LCD_GoTo(20,0); LCD_WriteText(napis4); //napis solar
break;
//---------------------------status
case 5:
if((aku > aku_stab)&&(sol < sol_ref))
LCD_GoTo(20,0); LCD_WriteText(napis1); //napis system czeka
break;
default:
break;
}
}
//--reszta kodu