Hallo Gemeinde Ich habe folgendes Problem: Für eine Kurzzeitstoppuhr ss,10,100 ( Pic 16f628A 4x7-Segment Multiplext ohne DP ) habe ich eine Zählschleife welche auch funktioniert. Vor beginn der Zählschleife wird eine LED für 300 ms angeschaltet als Startsignal. Die Zeitmessung beginnt also nach ende des Startsignals. Leider ist nun die Forderung, das das Startsignal in die Zeitmessung integriert werden muss, ohne die genaugkeit der Zählschleife zu verändern. Der Controler kann aber doch keine 2 Prozesse parallel abarbeiten. Als Zeitbasis benutze ich den Timer0 interrupt. Gibt es nun die Möglichkeit die Signalgebung am Beginn der Zähl/Anzeigeschleife zu integrieren ohne die Zeitbasis zu beeinflussen.
Da Du doch eh in einem Timer-Interupt die Zeit zählst, kannst du doch genau DIESEN Interupt auch zum abschalten der Led nutzen: Hauptprogramm: -startsignal abwarten -led einschalten -ledzähler auf 0 setzen Timer-Interupt: -ledzähler+1 -falls ledzähler>irgendwas: led abschalten Wo ist das Problem? Joe
Ich fürchte ohne kompletten Code wird man dir schwer helfen können. Wie wird der Timer initialisiert? Im Prinzip brauchst du zwei Zähler im Timerinterrupt(oder eventuell sogar nur einen). Wieso diese vielen "delay()"?
@ daniel Die Delays machen eine Korrektur der Zählschleife, da sonst die Uhr auf der Hardware mit dem vorhandenen Quarz zu schnell läuft. Ich bin C-Neuling und gerade dabei durch den Code zu steigen und zu verstehen. Deshalb die Blindheit für einige einfache Lösungen. Das Projekt habe ich mit Flowcode erstellt.
Olaf K. schrieb: > @ daniel > Die Delays machen eine Korrektur der Zählschleife, da sonst die Uhr auf > der Hardware mit dem vorhandenen Quarz zu schnell läuft. > Ich bin C-Neuling und gerade dabei durch den Code zu steigen und zu > verstehen. Deshalb die Blindheit für einige einfache Lösungen. > Das Projekt habe ich mit Flowcode erstellt. Uuups. OK mit "Flowcode" erstellt... hab grad mal geschaut, was das ist... Es gibt jetzt zwei Möglichkeiten: 1.) Du möchtest C lernen. Dann vergiss Flowcode und besorg dir einen "normalen" Compiler/Entwicklungsumgebung und ein gutes C-Buch (Kernighan-Ritchie wird als Standard oft genannt, das solltest du dir aber so soder so besorgen!). 2.) Du möchtest/musst Flowcode benutzen. Dann vergiss das C lernen. Durch diesen Code wirst du bestimmt nichts lernen. Versuch Flowcode zu verstehen. Was ist denndas für ein Konstrukt?:
1 | if( 0 ) //Active high polarity |
2 | portb = portb | 128; |
3 | else //Active low polarity |
4 | portb = portb & ~128; |
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.