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
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
mh, und ich kann mit einem timer 2 signale zu gleich messen?
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
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.