void main() { ds1307_init(); lcd_init(); strcpy(temp,"warte..."); lcd_put_string(temp); delay_ms(3000); port_b_pullups(TRUE); clear_interrupt(int_RB); help++; help--; set_tris_b (0xFF); enable_interrupts(GLOBAL); enable_interrupts(INT_EXT1); ext_int_edge( 1, L_TO_H); ext_int_edge( L_TO_H); ext_int_edge( 2, L_TO_H); Menue=0; Hauptmenue(); } void Hauptmenue() { BYTE Number; BYTE einer; BYTE zehner; enable_interrupts(INT_RB); Number=1; while (!Menue) { switch (Number) { case 1: //Beginn: Einstellen //anzeigen: "Konfiguration: Start mit OK" strcpy(temp,"Konfig: Start?"); lcd_put_string(temp); while(!pressed) { } Number++; pressed = 0; break; case 2: //Abstand einstellen clear_lcd; strcpy(temp,"Abstand(in s): "); lcd_put_string(temp); counter = read_EEPROM (0x01); help++; help--; while(!pressed) { lcd_gotoxy(0,0); //1.Zeile Lcd Difference = counter; Difference = counter; if (Difference > 99) { Difference = 0; counter = 0; } if (Difference < 0) { Difference= 99; counter = 99; } //Umwandlung hex in dezimal zehner = (Difference/10)%10; einer = Difference%10; //Darstellung des Abstandes auf Display lcd_putc(zehner+48); //48 ist der Offset in ASCII-Tabelle! lcd_putc(einer+48); lcd_putc(48); } //Differenz x10 -> in Sekunden Difference = counter *10; Number++; pressed = 0; write_eeprom(0x01,counter); help++; help--; break; }