volatile unsigned char adczaehler = 0; volatile int adcspeicher = 0; volatile int moment = 1; void Init(void){ ADMUX |= (1 << REFS0)|( 1 << REFS1); //externer Referenzspannung an AREF! -> Eingang: ADC0! ADCSRA |= ( 1<125kHz und einmal auslesen zum inbetriebnehmen } ISR(ADC_vect){ adczaehler++; adcspeicher += ADC; } int main(void){ char momentausgabe[8]; char drehzahlfaktorausgabe[8]; char ausgabeausgabe[8]; char adrehmoment[8]; char amoment[8]; char aadcergebnis[20]; int adcergebnis = 0; float drehmoment = 0; LCD_Init(0); LCD_Clr(); Init(); while(1) { if (adczaehler == 16){ adcergebnis = adcspeicher/16; drehmoment = ((float)adcergebnis*moment)/512; drehmoment = drehmoment - moment; sprintf (adrehmoment, "%.2f", drehmoment); LCD_WritePosString(1, 0,adrehmoment, 1); verz(6); adczaehler = 0; adcspeicher = 0; } itoa(moment, amoment, 10); LCD_WritePosString(2, 0,amoment, 1); itoa(adcspeicher, aadcergebnis, 10); LCD_WritePosString(3, 0,aadcergebnis, 1); verz(6); if (PIND &(1 << MENUETASTE)){ verz(8); men(); } if (PIND &(1 << UEBERSICHTTASTE)){ verz(8); uebersicht(); } } return 0; }