Gast
#50531
Hi Leuts, mal wieder eine Frage von einem Newbie: Ich möchte in meinem Programm verschiedene Zeitimpulse zur Verfügung haben. Dazu benuzue ich den Timer 0. Alle 10 ms wird ein Overflow aufgerufen. In dieser Interruptroutine erhöhe ich verschiedene Zählerstände und gewinne und toggle dabei entsprechende Bits. Ich habe also im Register TFlags (r16) folgenden Aufbau: Bit 0 wird alle 10 ms getoggelt Bit 1 wird alle 100 ms getoggelt Bit 2 wird alle 500 ms getoggelt Bit 3 wird alle 1000 ms getoggelt. Das höhere Nibble möchte ich jetzt so benutzen, dass Bit 4 alle 10 ms, Bit 5 alle 100 ms ,,... jeweils fuer einen Programmzyklus auf 1 gesetzt werden. Am Ende vom Hauptprogramm wird also das höhere Nibble wieder gelöscht. Nur: wie erzeuge ich diese Impulse ? Im Interrupt selbsr darf es nicht geschehen, denn dann könnte es ja mitten im Ablauf des Programms eines der bits gesetzt werden, am Ende wieder gelöscht. Es muss also am Anfang des Hauptprogramms geschehen. Aber wie ? Auf Flankenwechsel darf ich nicht anfragen, im ungünstigsten Fall würde ja kein Flankenwechsel vorkommen (wenn beispielsweise der 10 ms Takt 2 mal wechselt) Wäre für jeden Hinweis dankbar ... Greetings Karlheinz