/* * ADC.c * * Created: 03.12.2021 07:56:40 * Author : SNK */ #define F_CPU 16000000 #define D4 eS_PORTD4 #define D5 eS_PORTD5 #define D6 eS_PORTD6 #define D7 eS_PORTD7 #define RS eS_PORTB1 #define EN eS_PORTB2 #include #include "lcd.h" int main(void) { double UBit, d; uint16_t x,ergebnisTemp,y; // deklaration als 16 BIT Variable Lcd4_Init(); //lcd initalisieren Lcd4_Clear(); DDRD = 0xff; // als Ausgang definiert ADCSRA |= (1<initialisierung ADC ADMUX |= (1<Dummy readout { x = ADCH; // ADC in x speichern } while(1) { ADCSRA |= (1<> 6); //16 Bit in 10 Bit umwandeln UBit = ((5-0)/2^10); //Spannung berechnen : UBit = (Umax - Umin) durch 2^n d = ADCH*UBit; //U EingangsSpannung berechnen ergebnisTemp = ((y-d)*100)/UBit; //Temperatur berechnen (100 ist Korrekturfaktor) } Lcd4_Set_Cursor(1,0); Lcd4_Write_String("Temp: "); Lcd4_Write_Char((ergebnisTemp/10000)%10+48); Lcd4_Write_Char((ergebnisTemp/1000)%10+48); Lcd4_Write_Char((ergebnisTemp/100)%10+48); Lcd4_Write_Char((ergebnisTemp/10)%10+48); Lcd4_Write_Char(ergebnisTemp%10+48); Lcd4_Write_Char(32); //32=° (Gradzeichen) Lcd4_Write_String("C"); //C für Celsius } }