Bonjour,
j'utilise la carte de développement de Microchip SYNC BUCK converter qui est équipée d'un dsPIC30F2020. Et je souhaiterai mettre en œuvre une simple conversion analogique numérique sur l'entrée AN5, mais je n'y arrive pas. La configuration est différente des dsPIC30F sans modules SMPS...et je connais plus les PIC18 (je commence tout juste avec les dsPIC...)
Auriez vous une petite idée pour réaliser une simple conversion A/N (sans interruption, sans PWM comme source,...).?
J'ai téléchargé les exemples du site, mais ce sont des exemples bien précis (avec IT,...)
voici mon code, mais mon registre de stockage du résultat ADCBUF5 ne change pas ...
Code:void init_ADC() { TRISBbits.TRISB5 = 1; // A/D Status Register ADSTATbits.P3RDY = 0; // Pair 3 not used ADSTATbits.P2RDY = 0; // Pair 2 ADSTATbits.P1RDY = 0; // Pair 1 not used ADSTATbits.P0RDY = 0; // Pair 0 not used // This bit will be set when data is ready to // be read from the ADC buffer // A/D Port Configuration Register ADPCFGbits.PCFG7 = 1; // configured as analog input, pin not used ADPCFGbits.PCFG6 = 1; // configured as analog input, pin not used ADPCFGbits.PCFG5 = 0; // configured as analog input, pin ADPCFGbits.PCFG4 = 0; // configured as analog input, pin not used ADPCFGbits.PCFG3 = 1; // configured as analog input, pin not used ADPCFGbits.PCFG2 = 1; // configured as analog input, pin not used ADPCFGbits.PCFG1 = 1; // configured as analog input, pin not used ADPCFGbits.PCFG0 = 1; // configured as analog input, pin not used // A/D Convert Pair Control Register #1 ADCPC1bits.IRQEN2 = 0; // Disable Interrupt request on AN3 and AN2 // conversion, no interrupt used ADCPC1bits.SWTRG2 = 0; // Cleared; no software trigger used ADCPC1bits.PEND2 = 0; // Cleared; no pending conversion before start ADCPC1bits.TRGSRC2 = 1; // Choose PWM1 as the trigger source for // start of A/D conversion of AN5 and AN4 // A/D Control Register ADCONbits.ADSIDL = 0; // Continue ADC operation in idle mode ADCONbits.GSWTRG = 0; // no global software trigger used ADCONbits.FORM = 0; // ADC conversion results in integer form ADCONbits.EIE = 0; // Generate Interrupt after second conversion // is completed. In our case, the second // conversion is the AN5 conversion, which is // used for converting Vout1 to digital ADCONbits.ORDER = 0; // Even numbered analog input converted first ADCONbits.SEQSAMP = 1; // Sampling is sequential ADCONbits.ADCS = 7; // Select clock = 2*TQ ADCONbits.ADON = 1; // Turn ON ADC Module }
Merci d'avance
-----