34 #error "This processor selection has the DMA module; this code example is incompatible with a PIC24 CPU that has DMA."
38 #define CONFIG_LED2() CONFIG_RB0_AS_DIG_OUTPUT()
46 #define ADC_NSTEPS 4096
47 #define ADC_12BIT_FLAG 1
50 #define ADC_NSTEPS 1024
51 #define ADC_12BIT_FLAG 0
62 void _ISR _ADC1Interrupt (
void) {
70 if (AD1CON2bits.BUFS) {
71 for ( u8_i=0; u8_i<8; u8_i++) {
72 au16_buffer[u8_i] = au16_adcHWBuff[u8_i];
75 for ( u8_i=8; u8_i<16; u8_i++) {
76 au16_buffer[u8_i] = au16_adcHWBuff[u8_i];
109 CONFIG_AN0_AS_ANALOG();
110 CONFIG_AN1_AS_ANALOG();
111 CONFIG_AN4_AS_ANALOG();
112 CONFIG_AN5_AS_ANALOG();
113 CONFIG_AN10_AS_ANALOG();
114 CONFIG_AN11_AS_ANALOG();
115 CONFIG_AN12_AS_ANALOG();
120 ADC_SCAN_AN5 | ADC_SCAN_AN10 | ADC_SCAN_AN11 | ADC_SCAN_AN12, \
124 while ( !AD1CON1bits.DONE) {};
127 while(u8_waiting) {};
129 for ( u8_i=0; u8_i<16; u8_i++) {
130 u16_pot = au16_buffer[u8_i];
131 f_pot = 3.3 / ADC_NSTEPS * u16_pot;
140 ui16_potmv = f_pot*1000;
141 printf(
":0x%04X=%d mV ", u16_pot, ui16_potmv );
144 printf(
":0x%04X=%1.3fV ", u16_pot, (
double) f_pot );
146 if ((u8_i % 4) == 3) printf(
"\n");