Bonjour,
Je cherche à mesurer la tension d'une batterie pour tester son niveau de charge, pour cela j'utilise la pin RB0/AN0 et le convertisseur A/D de mon picj128GA010.
La fréquence de mon pic est reglée grâce à un quartz de 8Mhz. La batterie utilisée serait une 9V et 1.2A.
Mais j'ai quelques problèmes pour configurer les registres liés.(voir ci dessous, ma config ):
La tension sur la pin AN0 ne doit pas dépasser la tension d'alim du pic, je crois, donc je ferait un pont diviseur pour cela ça ne serait pas un problème.
Mais par contre je ne sais pas comment va évoluer la tension de la batterie.
Merci, d'avance pour votre aide.
Code:void __attribute__((__interrupt__,auto_psv)) _ADC1Interrupt(void) { Result_AN0 = ADC1BUF0; // Save AN0 result IFS0bits.AD1IF = 0; AD1CON1bits.ADON = 0; //disabling the ADC module } void InitADC1(void) { AD1PCFG =0xFFFE; AD1CON1 = 0x2000; AD1CON2 = 0x0000; AD1CON3 = 0x1001; AD1CON1bits.DONE = 0; //Making sure that there is any conversion in progress IPC3bits.AD1IP = 5; //Assigning ADC ISR priority IFS0bits.AD1IF = 0; //Clearing the ADC Interrupt Flag IEC0bits.AD1IE = 1; //Enabling the ADC conversion complete interrupt AD1CON1bits.ADON = 1; //Enabling the ADC module }
-----