Frage zur pulsIn() Funktion

Hallo Forum, ich benutze einen Arduino Duemilanove und versuche damit Eingangsimpulse ( 100ms - 1500ms ) mit der Funktion pulseIn(PortNummer, Wert) zu messen. Ich kann maximal 150ms Pulsbreite messen danach nur noch 0. In der Referenz von Arduino steht aber das die Pulszeit zwischen 10 Mikrosekunden und 3 Minuten liegen kann. Kann mir jemand erklären woran das liegen kann? MfG DC7DW

Pulsin hat einen optionalen dritten parameter: Timeout. Nach dieser Zeit bricht die Messung ab. Dies damit Pulsein das Programm in alle Ewigkeit blockiert falls kein Impuls kommt. Defauld-Wert ohne Angabe ist 1 Sekunde.

http://arduino.cc/en/Reference/PulseIn: pulseIn(pin, value, timeout)

Parameters

pin: the number of the pin on which you want to read the pulse. (int) value: type of pulse to read: either HIGH or LOW. (int) timeout (optional): the number of microseconds to wait for the pulse to start; default is one second (unsigned long)

Grüße Uwe

Hallo Forum, die wichtige Sache zuerst, die Funktion hat einen Bug! Ich habe im Englischen Teil vom Forum gesucht und auch gefunden das die Funktion einen Fehler hat. Man muß in der " wiring_pulse.c " pulseIn() funktion zwei Zeilen ändern und dann funktioniert alles auch mit langen Impulsen.

Mit freundlichen Grüßen DC7DW

DC7DW: Ich habe im Englischen Teil vom Forum gesucht und auch gefunden das die Funktion einen Fehler hat. Man muß in der " wiring_pulse.c " pulseIn() funktion zwei Zeilen ändern und dann funktioniert alles auch mit langen Impulsen.

Quelle? Link zum Thread? Welche Zeilen müssen wie geändert werden und warum?

Hallo Forum,

die Antwort habe ich unter " Why doesn't the pulseIn display duration more than 170ms??? " -- " http://arduino.cc/forum/index.php/topic,74813.msg563694.html#msg563694" gefunden. Die Änderungen stehen ungefähr in der Mitte der Beiträge.

MfG DC7DW