#include #include #include int main() { ADC_Start(); LCD_Start(); MUX_Start(); Opamp_Start(); DAC_Start(); int V0COUNTS; int V1COUNTS; int V0; /*V0 = VHigh - VMOX */ int V1; /*V1 = VMOX - Vlow */ int32 RRef = 1000; /* in kOhm, hier je nach Referenzwiderstand ändern, Ausgabe somit auch in der hier angegebenen Einheit */ int RMOX; char Screenbuffer[16]; LCD_Position(0,0); LCD_PrintString(Screenbuffer); for(;;) { MUX_Select(0); ADC_StartConvert(); ADC_IsEndConversion(ADC_WAIT_FOR_RESULT); V0COUNTS = ADC_GetResult32(); V0 = ADC_CountsTo_mVolts(V0COUNTS); MUX_Select(1); ADC_StartConvert(); ADC_IsEndConversion(ADC_WAIT_FOR_RESULT); V1COUNTS = ADC_GetResult32(); V1 = ADC_CountsTo_mVolts(V1COUNTS); /* Berechnung des Widerstandes */ RMOX = RRef * V0 / V1; sprintf(Screenbuffer, "%i Ohm", RMOX); LCD_Position(0,0); LCD_PrintNumber(RMOX); LCD_Position(1,0); LCD_PrintString(Screenbuffer); } }