bascom:pulslängenerfassung bei 2 unterschiedlichen signalen

Gast #90191
hallo leute, wollte die frequenzen messen von zwei unterschiedlichen
leitungen zur selben zeit.

da es aber nur einen icp-pin gibt, müßte was anderes her.
ich hab zwar schon mit den bascom-eigenen sachen was probiert, aber die
funktionieren bei mir nicht (mc hängt) hat einer ne andere idee oder
kann bestätigen,daß es mit den von bascom vorgestellten varianten
(heißen wohl pulsin.bas und pulsin2.bas) funktioniert?
da bei dem ende des function-blocks "end sub" anstatt von "end
function"  steht,macht die sache nicht vertrauenswürdiger...

Gruß Kai
Gast
Hi,

Du lässt einen Timer laufen, der garantiert seltener überläuft, als die
Impulse kommen.
Dann schliesst Du die Impulse an INT0 und 1 an.
Bei Flanke wird ein Interrupt ausgelöst.
In der ISR setzt Du ein Flag und schreibst den Stand des Timers in eine
Variable (time0 bzw time1).

Im Hauptprogramm fragst Du ständig die Flags ab.
Wenn eines gesetzt ist folgendes:
If time0 < oldtime0 then
                  zeit0 = 65536-oldtime0
                  zeit0 = zeit0 + time0
              else
                  zeit0 = time0 - oldtime0
              end if
oldtime0 = time0
flag0 = 0

Ersteres ist ein Überlauf des Timers.

Gruß,
Norbert
Gast
Hi,

Ja, der Timer läuft ungerührt im Hintergrund und wenn eins der Signale
auftritt wird der Stand des Timers in time0 bzw time1 geschrieben und
das Flag0 bzw Flag1 gesetzt.

Dann fragst Du im Hauptprogramm immer die Flags0 bzw 1 ab und wenns
gesetzt ist berechnest Du wie oben beschrieben die Zeit vom letzten
Ereignis (oldtime0 bzw 1) zum aktuellen Ereignis (time0 bzw 1).

Gruß,
Norbert

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.