//Temperatursensorauswertung und Ausgabe if (temp_Priorisierung>=4) //Die Temperaturmessung wird nur nach jedem 5.Durchlauf ausgeführt -->Priorisierung { wert_temperatursensor=ADC_Read_Avg(Temperatursensor,20); //Analogwert des Temperatursensors einlesen temperatur[i_temp]=wert_temperatursensor*5000UL/1024; // A/D-Wert in Spannung umrechnen (AREF=5V, 10 Bit A/D-Wandler: 2^10=1024) temperatur[i_temp]=temperatur[i_temp]-V_0GRAD; temperatur[i_temp]=temperatur[i_temp]/10; //Schreibe nur aufs Display, wenn die Werte die letzten 6 Werte gleich sind (kein Schwanken) und sich um mindestens 1° zur Anzeige auf dem Display unterscheiden if (temperatur[0]==temperatur[1] && temperatur[1]==temperatur[2] && temperatur[2]==temperatur[3] && temperatur[3]==temperatur[4] && temperatur[4]==temperatur[5] && !(temperatur[i_temp]==temp_wert_LCD) ) { //Flakkern der Tempwerte soll dadurch vermieden werden lcd_gotopos(4,17); lcd_writezahl (temperatur[i_temp]); //Ausgabe der aktuell gemessenen GradZahl temp_wert_LCD=temperatur[i_temp]; //speichern der ausgegebenen Temperatur, damit man weiß welcher Wert auf das Display geschrieben wurde } temp_Priorisierung=0; //Temperatur wurde gemessen, Zähler der Priorisierung wieder zurück setzen und auf die nächsten 5 Durchläufe warten } else { temp_Priorisierung++; } i_temp++; // erhöhe die Zählvariable von Null beginnend um 1 if (i_temp>5) //hiermit wird die Zählvariable wieder auf Null gesetzt { i_temp=0; }