با سلام .تو کدویژن و برنامه زیر به یه مشکل بر خوردم وقتی از هب اخری برمیگرده.با اینکه تو حلقه while تابع lcd_clear هم اوردم.اما به جای اینکه کلمه sestem normal رانشان بده بصورت چند حرف نامفهوم و بعد کلمه mal را تشان میده میشه کمکم کنید.
این هم از برنامه
while (1){
fault=10;
lcd_clear();
lcd_putsf("Press Key(1)"
;
delay_ms(10);
if(PIND.6==0){
//+P(Main) reading
p=0;
lcd_clear();
main_possitive=adc_data[0];
main_possitive/=400;
//sprintf(st,"POSSITIVE:%5.2f",main_possit ive);
//lcd_puts(st);
//delay_ms(wait);
//(Force line P 1)
PORTD=0x0e;
delay_ms(wait);
line[p]=adc_data[0];
line[p]=line[p]-20;
line[p]/=400;
//lcd_clear();
//sprintf(st,"+LINE(1):%5.2f",line[p]);
//lcd_puts(st);
//delay_ms(wait);
++p;
//(Force line P 2)
//delay_ms(10);
PORTD=0x0d;
delay_ms(wait);
line[p]=adc_data[0];
line[p]=line[p]-20;
line[p]/=400;
//lcd_clear();
//sprintf(st,"+LINE(2):%5.2f",line[p]);
//lcd_puts(st);
//delay_ms(wait);
PORTD=0x0f;
delay_ms(wait);
//lcd_clear();
// lcd_puts(" START N LINE"
;
// delay_ms(300);
++p;
//lcd_clear();
//Line (-) Reading
main_negative=adc_data[2];
main_negative/=400;
//sprintf(st,"NEGATIVE:%5.2f",main_negativ e);
//lcd_puts(st);
//delay_ms(wait);
//(Force line N 1)
//delay_ms(10);
PORTD=0x0b;
delay_ms(wait);
line[p]=adc_data[2];
line[p]=line[p]-20;
line[p]/=400;
//lcd_clear();
//sprintf(st,"-LINE(1):%5.2f",line[p]);
//lcd_puts(st);
//delay_ms(300);
++p;
//(Force line N 2)
PORTD=0x07;
delay_ms(wait);
line[p]=adc_data[2];
line[p]=line[p]-20;
line[p]/=400;
//lcd_clear();
//sprintf(st,"-LINE(2):%5.2f",line[p]);
//lcd_puts(st);
//delay_ms(wait);
PORTD=0x0f;
//lcd_clear();
for(p=0;p<2;p++){
if (line[p]>main_possitive)
fault=p;
}
for(p=2;p<4;p++){
if (line[p]>main_negative)
fault=p;
}
if (fault==10){
lcd_clear();
lcd_puts("SYSTEM NORMAL"
;
delay_ms(300);
}
else if (fault==0){
lcd_clear();
lcd_puts("DC Ground"
;
lcd_gotoxy(0,1);
lcd_puts("(+)SOL 1"
;
delay_ms(300);
}
else if (fault==1){
lcd_clear();
lcd_puts("DC Ground"
;
lcd_gotoxy(0,1);
lcd_puts("(+)SOL 2"
;
delay_ms(300);
}
else if (fault==2){
lcd_clear();
lcd_puts("DC Ground"
;
lcd_gotoxy(0,1);
lcd_puts("(-)SOL 1"
;
delay_ms(300);
}
else if (fault==3){
lcd_clear();
lcd_puts("DC Ground"
;
lcd_gotoxy(0,1);
lcd_puts("(-)SOL 2"
;
delay_ms(300);
}
}
}
این هم از برنامه
while (1){
fault=10;
lcd_clear();
lcd_putsf("Press Key(1)"

delay_ms(10);
if(PIND.6==0){
//+P(Main) reading
p=0;
lcd_clear();
main_possitive=adc_data[0];
main_possitive/=400;
//sprintf(st,"POSSITIVE:%5.2f",main_possit ive);
//lcd_puts(st);
//delay_ms(wait);
//(Force line P 1)
PORTD=0x0e;
delay_ms(wait);
line[p]=adc_data[0];
line[p]=line[p]-20;
line[p]/=400;
//lcd_clear();
//sprintf(st,"+LINE(1):%5.2f",line[p]);
//lcd_puts(st);
//delay_ms(wait);
++p;
//(Force line P 2)
//delay_ms(10);
PORTD=0x0d;
delay_ms(wait);
line[p]=adc_data[0];
line[p]=line[p]-20;
line[p]/=400;
//lcd_clear();
//sprintf(st,"+LINE(2):%5.2f",line[p]);
//lcd_puts(st);
//delay_ms(wait);
PORTD=0x0f;
delay_ms(wait);
//lcd_clear();
// lcd_puts(" START N LINE"

// delay_ms(300);
++p;
//lcd_clear();
//Line (-) Reading
main_negative=adc_data[2];
main_negative/=400;
//sprintf(st,"NEGATIVE:%5.2f",main_negativ e);
//lcd_puts(st);
//delay_ms(wait);
//(Force line N 1)
//delay_ms(10);
PORTD=0x0b;
delay_ms(wait);
line[p]=adc_data[2];
line[p]=line[p]-20;
line[p]/=400;
//lcd_clear();
//sprintf(st,"-LINE(1):%5.2f",line[p]);
//lcd_puts(st);
//delay_ms(300);
++p;
//(Force line N 2)
PORTD=0x07;
delay_ms(wait);
line[p]=adc_data[2];
line[p]=line[p]-20;
line[p]/=400;
//lcd_clear();
//sprintf(st,"-LINE(2):%5.2f",line[p]);
//lcd_puts(st);
//delay_ms(wait);
PORTD=0x0f;
//lcd_clear();
for(p=0;p<2;p++){
if (line[p]>main_possitive)
fault=p;
}
for(p=2;p<4;p++){
if (line[p]>main_negative)
fault=p;
}
if (fault==10){
lcd_clear();
lcd_puts("SYSTEM NORMAL"

delay_ms(300);
}
else if (fault==0){
lcd_clear();
lcd_puts("DC Ground"

lcd_gotoxy(0,1);
lcd_puts("(+)SOL 1"

delay_ms(300);
}
else if (fault==1){
lcd_clear();
lcd_puts("DC Ground"

lcd_gotoxy(0,1);
lcd_puts("(+)SOL 2"

delay_ms(300);
}
else if (fault==2){
lcd_clear();
lcd_puts("DC Ground"

lcd_gotoxy(0,1);
lcd_puts("(-)SOL 1"

delay_ms(300);
}
else if (fault==3){
lcd_clear();
lcd_puts("DC Ground"

lcd_gotoxy(0,1);
lcd_puts("(-)SOL 2"

delay_ms(300);
}
}
}