#include #include #include #include #include "delay.h" #include "lcd.h" #define LCD_LINE1 0x00 #define LCD_LINE2 0x40 char lcdCounterString[8]; volatile unsigned char overflow = 0; volatile unsigned int ic_zp_A = 0; // ICR-Wert bei 1.High-Flanke speichern volatile unsigned int ic_zp_B = 0; // ICR-Wert bei 2.High-Flanke speichern unsigned char i; volatile unsigned char UpdateDisplay; //Job Flag double zw_Erg = 0; double Erg = 0; ISR(TIMER1_CAPT_vect) { if( UpdateDisplay == 1 ) //auf vorherige Messung warten return; if (i == 0) // 1.High Flanke { ic_zp_A = ICR1; overflow = 0; i = 1; } else // 2.High Flanke { ic_zp_B = ICR1; // Messung ist fertig, Display kann neu geschrieben werden UpdateDisplay = 1; i = 0; } } ISR(TIMER1_OVF_vect) { overflow++; } int main(void) { initLcd(); sei(); TCCR1B = (1<Taktfrequenz: 4MHz externer Quarz TIMSK = (1<