Bonjour,
au fait je fais un programme enfin de controler la charge et décharge d'un condensateur. Je dois charger le condensateur jusqu'à atteindre une valeur limite de ma tension ( j'utilise un capteur de tension) et ensuite déclencher le processur de décharge. j'ai un soucis car mon systéme se met toujour à charger même si je dépasse la valeur limite fixée qui est vref
le code suivant me permet de récuperer la valeur de mon ADC à chaque interruption et de faire la conververtion en tensionCode:if (voltageconverter>=vref) // if the voltage is equal to 50V { LATAbits.LATA0=0; // stop to charge the capacitor LATFbits.LATF0=0; LATAbits.LATA2=1; //start to discharge the capacitor LATFbits.LATF1=1; flag_dech=1; } if ((voltageconverter<=vref) && (flag_dech==0) && (flag_finie==0)) // the voltage is under 50V and there is no discharge of the capacitor { LATAbits.LATA0=~LATAbits.LATA0; // start to charge the capacitor LATFbits.LATF0=~LATFbits.LATF0; LATAbits.LATA2=0; LATFbits.LATF1=0; } if ((flag_finie==1) && (flag_dech==1) ) // if the discharge has just finished { LATAbits.LATA2=0; // stop to discharge the capacitor LATFbits.LATF1=0; // flag_finie=1; flag_dech=0; }
merci de votre aideCode:void __attribute__((__interrupt__,__auto_psv__)) _ADC2Interrupt(void) { ADC2_value = ADC2BUF0; /* Copy value from ADC buffer */ voltageconverter= ((ADC2_value/1023)*(3.3)*G_sensor); // valeur de la tension convertie en V // multiplication avec le gain du capteur de tension flag_ADC2 = 1 ; _LATA6=~_LATA6; _AD2IF = 0; AD2CON1 = 0x0044; /* Must cancel current sampling */ AD2CON1 = 0x8044; /* Re-set ADC configuration for triggered sampling */ }
-----