ADC dsPIC33F

Postby nuumamonjaa » Wed May 30, 2007 12:00 am

Bonjour à tous,

Je suis actuellement en trin de développer différents programmes gérant chaque partie de la carte de développement explorer 16 mais je rencontre actuellement un problème dans la mise en oeuvre de l'ADC (conversion 12bits et 10bits). En effet, je ne parviens pas à effectuer de conversion analogique numérique aussi bien avec le potentiomètre qu'avec le capteur de température. Le problème étant que le buffer ADC1BUF0 ne fourni pas une valeur convenable, il fourni 0x0209 pour une position butoir maximale du potentiomètre au lieu de 0x0FFF et pour le capteur de température j'obtient une valeur correspondant a 32°C pour une pièce à 26°C. Mon programme reprend l’initialisation de l’ADC présente dans le programme d’exemple fourni avec la carte, qui lui fonctionne parfaitement.
Merci d'avance pour l'aide que vous pourrez m'apporter.
Ci-joint quelques parties de programme en rapport avec la conversion.

void Init_adc (void)
{
AD1PCFGH=0xFFFF;
AD1PCFGL=0xFFFF;
AD1CON2 = 0xE000;
AD1CON3 = 0x003F;
AD1PCFGL= 0xFFEF;
AD1CON1 = 0x00E4;
AD1CSSL = 0x0010;
AD1CHS0= 0x0004;
AD1CON1bits.AD12B = 1;
AD1CON3 |= 0x1F00;
/* reset ADC interrupt flag */
IFS0bits.AD1IF = 0;
/* enable ADC interrupts, disable this interrupt if the DMA is enabled */
IEC0bits.AD1IE = 1;
/* turn on ADC module */
AD1CON1bits.ADON = 1;
}

void __attribute__((__interrupt__)) _ADC1Interrupt( void )
{
while(!AD1CON1bits.DONE);
/* Save off the RP5 Potentiometer data */
capteur = ADC1BUF0;
traitement = 1;
/* reset ADC interrupt flag */
IFS0bits.AD1IF = 0;
}
nuumamonjaa
 
Posts: 11
Joined: Fri Jan 17, 2014 4:42 pm

Postby nuumamonjaa » Wed May 30, 2007 12:00 am

Personne pour me répondre? arf je me disait bien qu'elle était bidon cette carte j'aurai du prendre la carte LV24-33 de mikroelektronika!
nuumamonjaa
 
Posts: 11
Joined: Fri Jan 17, 2014 4:42 pm


Return to Explorer-16 (01 à 05-2007)

Who is online

Users browsing this forum: No registered users and 1 guest