Hallo, ich möchte für eine Steuerung die Stellzeiten im Speicher des PCF8583 speichern. An einen 90S8535 sind fünf tasten und ein 2x16 LCD angeschlossen, in dem in der oberen Zeile wochentag, zeit1 und zeit2 in folgendem format angezeigt werden: wt hh:mm hh:mm. Ich möchte nun mit zwei tasten auf die einzustellende Grösse springen (links rechts) und Sie blibken lassen, und mit zwei weiteren Tasten (hoch runter) die Werte verändern. Mit folgenden Code (nicht erschrecken, ist mein erstes AVR c-programm :/ ) klappt das einstellen auch schon gut, aber der Curser will einfach nicht blinken! Weiß jemand Rat? Oder hat eine andere routine zum Stellen oder beschreiben des RTC? void settings (){ unsigned char curs_pos = 0; day=rtc_get_day(0); rtc_get_lift_times(day); show(day,times); _lcd_write_data(0x0d); // turn on blinking while(~taste3){ if (taste2 && curs_pos<4) curs_pos++; delay_ms(50); if (taste1 && curs_pos>0) curs_pos--; delay_ms(50); switch(curs_pos){ case 0: lcd_gotoxy(1,0); if (taste5 == 1&& day<6) day++;show(day,lift_times);delay_ms(100); if (taste4 == 1&& day>0) day--;show(day,lift_times);delay_ms(100); rtc_get_lift_times(day); break; case 1: lcd_gotoxy(5,0); if (taste5 == 1&& lift_times[0]<23) lift_times[0]++;show(day,lift_times);delay_ms(100); if (taste4 == 1&& lift_times[0]>0) lift_times[0]--;show(day,lift_times);delay_ms(100); break; case 2: lcd_gotoxy(8,0); if (taste5 == 1 && lift_times[1]<59) lift_times[1]++;show(day,lift_times);delay_ms(50); if (taste4 == 1 && lift_times[1]>0) lift_times[1]--;show(day,lift_times);delay_ms(50); break; case 3: lcd_gotoxy(12,0); if (taste5 && lift_times[2]<23) lift_times[2]++;show(day,lift_times);delay_ms(100); if (taste4 && lift_times[2]>0) lift_times[2]--;show(day,lift_times);delay_ms(100); case 4: lcd_gotoxy(15,0); if (taste5 == 1 && lift_times[3]<59) lift_times[3]++;show(day,lift_times);delay_ms(50); if (taste4 == 1 && lift_times[3]>0) lift_times[3]--;show(day,lift_times);delay_ms(50); break; } rtc_set_lift_times(day,lift_times); } } Ich hoffe ihr könnt damit was anfangen...
Hier findest Du ein C-Programm, in dem z.B. die Weckzeit mit 2 Tasten gestellt werden kann: http://www.specs.de/users/danni/appl/soft/c51/thclock/index.htm Das ganze erfolgt mit einer großen Statemaschine im main(). Dabei wird mit einem langen Tastendruck in den Stellmodus gewechselt und dann durch die einzelnen Digits durchgegangen. Mit der anderen Taste kann man dann mit Einzelimpulsen oder im Schnellgang das blinkende Digit hochzählen lassen. Peter
Hat noch jmd. dieses C Programm? Die verlinkte Seite existiert leider nicht mehr und ich suche einen solchen Code.
bei http://web.archive.org/ nach http://www.specs.de/~danni/appl/soft/c51/thclock/index.htm suchen...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.