// AMUX4_PORT0_0 => 0x00 // AMUX4_PORT0_2 => 0x01 // AMUX4_PORT0_4 => 0x02 // AMUX4_PORT0_6 => 0x03 int get_adc(BYTE amux_channel){ AMUX4_InputSelect(amux_channel); wait(10); ADCINC_GetSamples(0); while(!ADCINC_fIsDataAvailable()); return ADCINC_iClearFlagGetData(); }
/************************************************************************ * MeasureTemperature read temperature sensor voltage * * Parameters: none * Returns: none ************************************************************************/ void MeasureTemperature(void) { if (ADCINC_fIsDataAvailable()) { Temperature = ADCINC_iClearFlagGetData(); // Clear ADC flag and get data ADCINC_GetSamples(1); // start the next sample } }
void main(void) { int result; float voltage; int status; M8C_EnableGInt ; // Uncomment this line to enable Global Interrupts // Insert your main routine code here. //Start PGA in high power mode PGA_Start(PGA_HIGHPOWER); //Start ADCINC in high power mode ADCINC_Start(ADCINC_HIGHPOWER); //Start LCD LCD_Start(); //Run the ADC continuously ADCINC_GetSamples(0); SleepTimer_Start(); SleepTimer_SetInterval(SleepTimer_1_HZ); SleepTimer_EnableInt(); while (1) { SleepTimer_SyncWait(1, SleepTimer_WAIT_RELOAD); // Wait for data to be ready while (ADCINC_fIsDataAvailable() == 0); // Get Data and clear flag result=ADCINC_iClearFlagGetData(); voltage = result * SCALE_FACTOR; LCD_Position(0, 0); LCD_PrCString(" "); LCD_Position(0, 0); LCD_PrHexInt(result); LCD_Position(1, 0); LCD_PrCString(" "); LCD_Position(1, 0); LCD_PrString(ftoa(voltage, &status)); } }