pulseIn und pulseInLong

Guten Morgen,

in der Referenz zu den Funktionen pulseIn und pulseInLong steht in der Beschreibung dass pulseIn eher für kurze Impulse, pulseInLong für lange Impulse geeignet ist.
Die Beschreibung sagt aber nicht (habe auch nichts genaueres im Netz gefunden) wie kurz und lang zu interpretieren ist... Gibt es da eine Zahl wo die Grenze zu sehen ist ?

In einem Beispielsketch aus den Weiten des Netzes habe ich folgende Zeile gefunden:
res = pulseIn(INPIN, HIGH, 3000000UL);

3000000 ist für den Timeout, aber für was steht das UL dahinter?

unsigned long

Unsigned Long
Der Wertebereich.

If you have a very long pulse that needs to be measured, and have interrupts enabled in your code, you could use pulseInLong() instead of pulseIn. The syntax is similar, and the timeout argument is optional over here as well. This function can be used for measuring pulses from 10 microseconds to 3 minutes in length, and can be used only if interrupts are enabled.It is prone to errors for shorter pulses and gives the highest resolution for larger pulses

Danke fony and my_xy_projekt.

Bleibt noch die Frage : wie lang ist ein kurzes Signal und ab wann ist es ein Langes ?
Dass das keine harte Grenze ist, ist mir schon klar... :wink:

@kolaha : den Text aus der Refernz hier ins Forum kopieren beantwortet das nicht...

Suchtipp: "integer literal suffix C++"
Führt dich u.A. hierhin
Alternativ: Jedes beliebige C oder C++ Grundlagenbuch.

Da steht aber genau das, wonach du gefragt hast!

Also muss ich annehmen, dass dich die Antworten auf deine Frage gar nicht interessieren.
Zudem: Weder die C++ Doku noch die Arduino Doku.

Zudem liegt der Kram auf deinem Rechner. Im Quellcode.
Schau doch hin: ArduinoCore-avr/cores/arduino/wiring_pulse.c at 9f8d27f09f3bbd1da1374b5549a82bda55d45d44 · arduino/ArduinoCore-avr · GitHub

Kann es sein, dass dein Erkenntnisapparat, das Ding da auf deinem Hals, heute irgendwie verstopft ist?

Übrigens:
Kann es sein, dass die Arduino Doku unvollständig/kaputt ist? Ja!
Kann es sein, dass sogar die Kommentare im Code falsch sind? Ja!

Ja stimmt. Das kopieren des Textes beantwortet die Frage nicht. Aber das lesen. Da steht "10 microseconds to 3 minutes in length". Das ist doch ein klarer Hinweis?

Das steht genau gleich bei beiden Varianten und und beantwortet nicht die Frage bis wann ein Signal als kurz gilt und ab wann es lang ist.

Sach ich ja: Hirn einschalten!

Bis 3 Minuten ist kurz.
Drüber ist lang.
Und lang endet bei ca 70 Minuten.

Alles ersichtlich.
Gerade wenn man sich den Code ansieht.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.