bonjour ,
ci dessous le code suivant il permet de stocker deux valeurs à travers 2 boutons puis les lire pour l'utiliser dans la fonction en simulation les deux valeurs sont sauvegardés correctement lorsque j'ai programmé le pic et je fait les tests pratiques , j'ai réalisé que anque je coupe pas l'alimentation tout vas bien , lorsque je la coupe et je la l'allume une autre fois les deux valeurs stockes sont perdus et j'ai besoin de refaire la procedure . une petite aide s'il vous plait et merci
Code:unsigned short current_duty, old_duty, current_duty1, old_duty1; float valeur ,adc,maxi,mini,v ; void InitMain() { ANSEL = 0x04; // Configure AN2 pin as analog ANSELH = 0; // Configure other AN pins as digital I/O C1ON_bit = 0; // Disable comparators C2ON_bit = 0; TRISA = 0xFF; PORTC = 0; // PORTA is input TRISC = 0x00; // PORTC is output PORTB=0 ; TRISB = 0b00000011; // PORTB is input TRISD = 0x00; // designate PORTC pins as output PWM1_Init(10000); // Initialize PWM1 module at 5KHz } void main() { InitMain(); current_duty = 248; // initial value for current_duty PWM1_Start(); // start PWM1 PWM1_Set_Duty(current_duty); // Set current duty for PWM1 while (1) { mini== EEPROM_Read(0x01); maxi== EEPROM_Read(0x00); valeur = ADC_Read(2); adc=valeur/4 ; if (Rb0_bit) //If the switch is pressed { maxi=adc; EEPROM_Write(0x00,maxi); RB3_bit=1; delay_ms(100); RB3_bit=0; delay_ms(100); } if (rb1_bit) //If the switch2 is pressed { mini=adc; EEPROM_Write(0x01,mini); RB4_bit=1; delay_ms(100); RB4_bit=0; delay_ms(100); } v=((255/(maxi-mini))*(adc-mini)); portd=v; } }
-----