الله يكرمك اخي حيدر جربتها بااكثر من حالة لكن دون فائدة
1-لما اضع if لااقل قيمة يعطي صفر مثل الكود:
كود:
sbit LCD_RS at Rd2_bit;
sbit LCD_EN at Rd3_bit;
sbit LCD_D4 at Rd4_bit;
sbit LCD_D5 at Rd5_bit;
sbit LCD_D6 at Rd6_bit;
sbit LCD_D7 at Rd7_bit;
sbit LCD_RS_Direction at TRISd2_bit;
sbit LCD_EN_Direction at TRISd3_bit;
sbit LCD_D4_Direction at TRISd4_bit;
sbit LCD_D5_Direction at TRISd5_bit;
sbit LCD_D6_Direction at TRISd6_bit;
sbit LCD_D7_Direction at TRISd7_bit;
long int maximum=0, minimum =1023;
int i[8];
int k[8];
void main()
{ ADCON1.PCFG3=0; ADCON1.PCFG2=0;ADCON1.PCFG1=0; ADCON1.PCFG0=1;
trisa.f0=1;trisb=0;portb=0;
lcd_init();
lcd_cmd(_LCD_CURSOR_OFF); Lcd_Cmd(_Lcd_Clear);
while(1)
{
if(adc_read(0)> maximum)
{maximum=adc_read(0);
IntToStr(maximum*3000/1023,i);
lcd_out(1,1,i);
lcd_out_cp(" mV");
if(adc_read(0) < minimum)
{ minimum=adc_read(0);
IntToStr(minimum*3000/1023,k);
lcd_out(2,1,k);
lcd_out_cp(" mV");
}
}
}
2-عندما الغي if تبع max يعطي قيمة لكن غير ثابتة.
3-فكرت اضم الاثنين مع بعض حيث تكون if وحدة بعبارة AND&& يعطي قرأة لااعلى قيمة ولكن اقل قيمة بسرعة تظهر ثم تختفي ويظهر صفر