Pages: [1]   Go Down
Author Topic: Frage zur pulsIn() Funktion  (Read 690 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 236
Posts: 20298
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

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
« Last Edit: February 01, 2012, 03:58:27 pm by uwefed » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Germany
Offline Offline
Edison Member
*
Karma: 44
Posts: 2261
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Jump to: