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 ) :
#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
Salut, c'est un poil trop technique ton topic
mais en regardant ton code on peut déjà remarquer deux choses
while(ADCON0bits.GO_DONE);
-->pas de ; à la fin pour ce type d'intruction, par contre pour un do/while il yen aurait un.
Moins grave, le main retourne un int et non void, il faudrait remplacer
void main(void) par int main(int argc, char **argv), pour le reste je peux pas aider