LED Ausgabe in eine Zählschleife integrieren ohne Zeit zu verlieren

OP (Firma: Hobby) #2117591
Lesenswert?

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.
Angehängte Dateien:
Gast #2117617
Lesenswert?

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
OP (Firma: Hobby) #2117651
Lesenswert?

@ 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.
Angehängte Dateien:
#2118327
Lesenswert?

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;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren