Bonjour à tous, Voici c'est ce que je veux faire:
je veux afficher un nombre en fonction de la tension sur l'entrée analogique RA0 mais celle -ci selon la valeur sur RA1.le code est sans erreur mais affiche des fausses valeurs je crois.Un peu d'aide est le bienvenu.Merci
Code:sbit LCD_RS at RB0_bit; sbit LCD_EN at RB1_bit; sbit LCD_D4 at RB2_bit; sbit LCD_D5 at RB3_bit; sbit LCD_D6 at RB4_bit; sbit LCD_D7 at RB5_bit; sbit LCD_RS_Direction at TRISB0_bit; sbit LCD_EN_Direction at TRISB1_bit; sbit LCD_D4_Direction at TRISB2_bit; sbit LCD_D5_Direction at TRISB3_bit; sbit LCD_D6_Direction at TRISB4_bit; sbit LCD_D7_Direction at TRISB5_bit; void main() { float temp_res,Vc; char *sortie[8]; char *out[8]; Lcd_Init(); Lcd_Cmd(_LCD_CLEAR); // Clear display Lcd_Cmd(_LCD_CURSOR_OFF); Adc_init(); TRISA = 0xFF; // programmtion du PORTA en entrée TRISD = 0xFF; TRISB = 0; // programmtion du PORTB en sortie do { adcon0=0x80; temp_res = ADC_Read(0)*5.0/1024; // Get 10-bit results of AD conversion in RA0 Vc = ADC_Read(1)*5.0/1024; // Get 10-bit results of AD conversion in RA1 if (0 < Vc < 1) { temp_res= temp_res*temp_res/377; FloatToStr(temp_res,sortie); Lcd_Out(1, 1, sortie); Delay_ms(100) ; } if (1 <= Vc < 2.8) { FloatToStr(temp_res,sortie); Lcd_Out(1, 7, sortie); Delay_ms(100) ; } if (2.8<= Vc < 5) { temp_res= temp_res/377; FloatToStr(temp_res,sortie); Lcd_Out(2, 1, sortie); Delay_ms(100) ; } Delay_ms(100) ; } while(1); }
-----