int main() { //DDRC = 0b00011111; (PC5-7 als Eingang, Rest als Ausgang) //PORTC = 0b11100000; (Interner PullUp für PC5-7) DDRB = 0b11001111; //(PB4-5 als Eingang, Rest als Ausgang) PORTB = 0b00110000; //(Interner PullUp für PB4-5) //DDRC = 0b00011111; (PC5-7 als Eingang, Rest als Ausgang) //PORTC = 0b11100000; (Interner PullUp für PC5-7) //DDRB = 0b00000101; //(PC5-7 als Eingang, Rest als Ausgang) //PORTB = 0b00010000; //(Interner PullUp für PC5-7) //DDRB = (1 << PB1 ) | (1 << PB2 ); uint16_t adcval1, adcval2, adcval3,x1,x2,x3,ad1a,ad2a,ad3a,ad1b,ad2b,ad3b; //Deklarationen bool m1 = 0; lcdInit(); ADC_Init(); init(); // Initialisierungen while( 1 ) { //ADC Werte einlesen und umrechnen Channel 1-5 adcval1 = ADC_Read(0) * 2; // Kanal 0 x1=adcval1 / 7; adcval1= adcval1 - x1; ad1a=adcval1/100; ad1b=(adcval1-100*ad1a)/10; adcval2 = ADC_Read(1) * 2; // Kanal 1 x2=adcval2 / 7; adcval2= adcval2 - x2; ad2a=adcval2/100; ad2b=(adcval2-100*ad2a)/10; adcval3 = ADC_Read(2); // Kanal 2 x3=adcval3 / 7; adcval3= adcval3 - x3; ad3a=adcval3/100; ad3b=(adcval3-100*ad3a)/10; //Spannung Batterie 1 bis Batterie 4 in Strings mit Format: 12,1V speichern char buffer1[80]; sprintf(buffer1, "%2i,%01iV", ad1a,ad1b); char buffer2[80]; sprintf(buffer2, "%2i,%01iV", ad2a,ad2b); char buffer3[80]; sprintf(buffer3, "%2i,%01iV", ad3a,ad3b); lcdGoto(1,1); lcdWrite(buffer1); waitMs(10); lcdGoto(1,7); lcdWrite(buffer2); waitMs(10); lcdGoto(2,1); lcdWrite(buffer3); waitMs(10); lcdGoto(2,7); lcdWrite(buffer1); waitMs(10); //Wenn Batteriespannung unter Wert fällt oder Taster gedrückt geht Motor an { if ( !(PINB & (1<