Hola,
Hace días que me estoy peleando con el ADC de un dsPIC30f6013A. Como no sé si leo correctamente, creo que sí porqué es relativamente fácil. He encontrado que usando el simulador MPLAB SIM puedo ver los datos de salida del buffer.
Lo que hago es ir a Debugger --> Stimulus -> New Workbook.
En Register Injection, doy debajo la casilla Label y me aparece: (añado mi file), y le doy al Apply y Save
REG/VAL Trigger Width DataFilename Wrap Format Comments
ADCBUF0 Demand 2 MyData.txt Yes Hex (optional)
Donde MyData.txt:
0x0001
0x0080
0x03ff
0x0123
0x0273
My código en la interrupción del ADC es:
void __attribute__ ((__interrupt__, no_auto_psv)) _ADCInterrupt(void)
{
//AD Conversion complete interrupt handler
IFS0bits.ADIF = 0; // Clear ADC Interrupt Flag
ADResult3 = ADCBUF3; // Get the conversion result. Només vull del canal 0, sortida 3. No sé quin està bé, si aquest o el de dalt.
printf ("ADresult_dp %lf \n",(double) ADResult3);
}
Cuando le doy al debug, y play, me sale esto:
ADresult_dp 9223372036854775808000000000000.000000
ADresult_dp 9223372036854775808000000000000.000000
ADresult_dp 1353997238795814912000000000.000000
ADresult_dp 569452500845274316800000000000.000000
ADresult_dp 569452500845274316800000000000.000000
ADresult_dp 569452500845274316800000000000.000000
No me deberían salir los valores que hay en MyData.txt?
Qué hago mal?
Gracias!