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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.