mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik bascom:pulslängenerfassung bei 2 unterschiedlichen signalen


Autor: Kai (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Kai (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mh, und ich kann mit einem timer 2 signale zu gleich messen?

Autor: Norbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.