Da ist noch ein Problem: Pulsein zäht nur bis 655.35mS
Gruß, Trabukh
Druckbare Version
Da ist noch ein Problem: Pulsein zäht nur bis 655.35mS
Gruß, Trabukh
Dann kannst du das ganze doch in eine Schleife machen bis ein Pulsein keinen Timeout hat. Du zählst mit, wie oft die Schleife durchlaufen musste und addierst die Zeiten, dann hast du einen Pulsein mit unbegrenzter Laufzeit.
Beispiel: 2,5 sek Puls
2500 ms
2500000 µs
250000 units / 65535 = 3.8
also läuft die Schleife 4 mal
2. Beispiel: 627834 units (frei ausgedacht 8-[ )
627834 / 65535 = 9.58
d.h. die schleife läuft 9 mal komplett durch und dann folgt ein impuls von den noch übriggebliebenen 380190 units.
Dies entspricht ca. 38019 µs = ca. 380 ms
Das Ergebnis: 9 * 655.35 ms + 380 ms
= 6.3 sek
Hat jemand mal n beispiel wie man das mit nem Timer macht? Will die Zeiten jeweils zwischen einem Int. haben....
Gruss
Jan
Also das pulsein ist mit einem Timer gemacht.
Martin
pulsein ist für mich leider ungeeignet, da das Programm an dieser Stelle unterbrochen wird. Bei mir muss die Software weiterlaufen und beim nächsten int. die Zeit ausgeben.
Gruss
Jan
Achso, jetzt versteh ich dein Problem..... 8-[
on timer1 timer1_isr
on int0 int0_isr
.................
timer1_isr:
timer1 = wert
incr i
return
int0_isr:
zahl = timer1
return
dann wird in "zahl" der aktuelle timer1-status gespeichert wenn an int0 eine 1er oder 0er flanke anliegt (hängt von der konfig ab) und in i der faktor für die timerüberläufe.
du musst natürlich noch den timer1 konfigurieren.
Martin
super! Danke!
OK, verstanden hab ich das, nur leider kenne ich mich mit BASCOM noch überhaupt nicht aus. Könntest du einen kleinen Beispielcode geben? Bitte...Zitat:
Dann kannst du das ganze doch in eine Schleife machen bis ein Pulsein keinen Timeout hat. Du zählst mit, wie oft die Schleife durchlaufen musste und addierst die Zeiten, dann hast du einen Pulsein mit unbegrenzter Laufzeit.
Gruß, Trabukh