volatile int moment = 50; int main(void){ verz(20); char _drehmoment[8]; char _moment[4]; char _adcergebnis[4]; int adcergebnis = 0; long drehmoment = 0; LCD_Init(0); LCD_Clr(); DDRD &=~( (1 << _MENUE_) |(1 << _HOCH_) | (1 << _RUNTER_) | (1 << _OK_) | (1 << _UEBERSICHT_) ); //Pins auf active_high stellen PORTD &=( (1 << _MENUE_) |(1 << _HOCH_) | (1 << _RUNTER_) | (1 << _OK_) | (1 << _UEBERSICHT_) ); //Internen Pull-Up deaktivieren DDRB |= (1<125kHz und einmal auslesen zum inbetriebnehmen ADMUX != (1 << REFS0)|( 1 << REFS1); //externer Referenzspannung an AREF! -> Eingang: ADC0! LCD_WritePosString(0, 0,"Drehmoment:", 1); while(1) { adcergebnis = 0; for(i=0;i<10;i++) // ADC -> Einlesen { ADCSRA |= (1 << ADSC); while (ADCSRA & _BV(ADSC) ) { } adcergebnis += ADC; } adcergebnis /= 10; drehmoment = adcergebnis*moment/512; drehmoment = drehmoment - moment; sprintf (_drehmoment, "%ld", drehmoment); LCD_WritePosString(1, 0,_drehmoment, 1); itoa(moment, _moment, 10); LCD_WritePosString(2, 0,_moment, 1); itoa(adcergebnis, _adcergebnis, 10); LCD_WritePosString(3, 0,_adcergebnis, 1); verz(6); if (PIND &(1 << _MENUE_)) { verz(8); men(); } } return 0; }