// Festlegung der Quarzfrequenz #ifndef F_CPU // optional definieren #define F_CPU 18432000UL // MEXLEclock mit 18,432 MHz Quarz #endif // Deklarationen // ============================================================================ #include // Header-Dateien zum ATmega88 #include // Header-Datei fuer Bit-Berechnung #include // Header-Datei fuer Interrupts #include // Header-Datei fuer Wartezeit #include "lcd_lib_de.h" // Header-Datei fuer LCD-Anzeige #include // Konstanten #define ASC_NULL 0x30 // Das Zeichen '0' in ASCII #define ASC_FULL_STOP 0x2E // Das Zeichen ':' in ASCII // Variable unsigned int adcValue = 0; // Variable fuer den AD-Wandlungswert unsigned int tValue = 0; unsigned int switchnr = 0; //unsigned int index = 0; bool takt10ms; // Bit-Botschaft alle 10 ms bool takt100ms; // Bit-Botschaft alle 100 ms bool takt1s; // Bit-Botschaft alle 1s // Konstanten void adWandlerInit (void); void initDisplay (void); void initSwitch (void); void doAdc (void); void calculateLux (void); void refreshDisplay (void); void refreshDisplayTemp(int tempValue, char line, char pos); */ // Hauptprogrammschleife __________________________________________________ int main () { initDisplay(); // Initialisierung LCD-Anzeige adWandlerInit(); // Initialisierung des AD-Wandlers initSwitch(); // Initialisierung des Taster sei(); // generell Interrupts einschalten while(1) // unendliche Warteschleife mit Aufruf der { if(takt100ms) // Durchfuehrung der Funktion einmal pro 100ms { takt100ms = 0; // Taktbotschaft zuruecksetzen doAdc(); // Ausfuehrung des Modules der A/D-Wandlung calculateLux(); // Ausfuehrung des Modules der Umrechnung } if(takt1s) // Durchfuehrung der Anzeige einmal pro 1s { takt1s = 0; // Taktbotschaft zuruecksetzen refreshDisplay(); // Ausfuehrung des Modules der Anzeige } if (!(PIND & (1<