Bonjour à vous !
Je voudrai réaliser un programme permettant une conversion analogique numerique avec un PIC 18F4520. J'utilise le logiciel et une carte de test MPLAB V8 avec MCC18.
Il faudrait donc un programme avec une initialisation de l'adc ainsi que le programme de conversion.
J'ai essayé l'initialisation ce qui donne ceci (Mon probleme est que j'ai très peu de base en langage C :'( ) :
Pourriez vous me dire ce qui ne va pas dans le bout de programme ci-dessus ? les choses à modifier ect ...Code:#include <p18f4520.h> #include <adc.h> void main(void) { TRISA=1; // PORTA en Entrée PORTA=1; // PORTA a 1 ADCON0bits.ADON = 1 ; // A/D convert ON ADCON0bits.CHS0 = 0 ; // Choisir la voie a convertir => AN0 ADCON0bits.CHS1 = 0 ; // Choisir la voie a convertir => AN0 ADCON0bits.CHS2 = 0 ; // Choisir la voie a convertir => AN0 ADCON0bits.CHS3 = 0 ; // Choisir la voie a convertir => AN0 ADCON1bits.PCFG0 = 1 ; // Configuration des ports A/D = AN1 et AN0 ADCON1bits.PCFG1 = 0 ; // Configuration des ports A/D = AN1 et AN0 ADCON1bits.PCFG2 = 1 ; // Configuration des ports A/D = AN1 et AN0 ADCON1bits.PCFG3 = 1 ; // Configuration des ports A/D = AN1 et AN0 ADCON1bits.VCFG0 = 0 ; // references de tension a utiliser par le CAN => Vref+ = Vdd ADCON1bits.VCFG1 = 0 ; // references de tension a utiliser par le CAN => Vref- = Vss ADCON2bits.ADCS0 = 0 ; // configurer horloge selection ADCON2bits.ADCS1 = 0 ; // configurer horloge selection ADCON2bits.ADCS2 = 1 ; // configurer horloge selection ADCON2bits.ACQT0 = 0 ; // configurer un temps d'acquisition ADCON2bits.ACQT1 = 0 ; // configurer un temps d'acquisition ADCON2bits.ACQT2 = 0 ; // configurer un temps d'acquisition ADCON2bits.ADFM = 1 ; // justification a droite ADRESH=0x00 ; // Mise à zero du registre ADRESH ADCON0bits.GO_DONE = 1; // A/D conversion in progress (Start Of Conversion) while(ADCON0bits.GO_DONE); // Attente de l'EOC { ADCON0bits.GO_DONE=0; // EOC X=ADRESH; X<<=8; X|=ADRESL; }
Pour la suite (conversion), je ne sais pas du tout comment faire ...
-----