Forum: Mikrocontroller und Digitale Elektronik Bascom Pulseout Problem


von Dieter B. (ditt)


Lesenswert?

Hallo liebe Helfer,

Ich habe ein Problem mit dem Bascombefehl pulseout.
Ich möchte einen Impuls von 500ms erzeugen.
Ich benutze einen Atega328 mit 16MHz Quarz.

Portd.0 = output

Laut Hilfedatei sollte der Befehl, umgerechnet auf 16MHz,
folgendermassen aussehen:

pulseout portd ,0, 2000000 (Zweimillion)

Nun passiert folgendes:
Bis zu einen Wert von 65536 wird die Impulsdauer korrekt
ausgegeben.
Danach wird vom Impulswert 65536 abgezogen und der Rest wird als
Impulsdauer erzeugt.
Dies geschieht jedesmal wenn ein vielfaches des Wertes 65536
erreicht wird.
Der Impuls wir nie länger als 16,384ms = 65536

Es steht nirgens, dass es eine Einschränkung der Impulsdauer gibt.

Wer kann mir das erklären?

Vielen Dank
Ditt

von John (Gast)


Lesenswert?

Woran erinnert dich die Zahl 65536? Falls an nichts: 2^n = 65536, was 
ist dann n? Wenn Pulseout größenordnungsmäßig Pulse in 
Mikrosekundenbereich erzeugt, ist das dann das Richtige für einen Puls 
von einer halben Sekudne Länge?

von Dieter B. (ditt)


Lesenswert?

Hallo John,

das der Wert von 65536 eine Potenz von 2 darstellt, war mir schon
klar.
Wenn pulseout nicht gedacht ist so lange Impulse zu erzeugen,
welche Alternative gibt es denn eine Impuls genauer Länge zu erzeugen?

Ditt

von John (Gast)


Lesenswert?

Ich wollte nur zum Ausdruck bringen dass da augenscheinlich eine 16 Bit 
Variable überläuft. Das steht in der Tat nicht in der Doku, die ist bei 
Bascom ja aber auch bekanntermaßen relativ schlecht. Wenn du einen Puls 
von ungefähr 500 ms erzeugen willst, könntest du den entspr. Pin setzen, 
mit dem Befehl  "waitms" 500 ms warten und dann den Pin löschen. Das ist 
weder sehr genau, noch sehr elegant. Ansonsten halt einen Timer 
verwenden, genau dafür sind die ja da.

von Dieter B. (ditt)


Lesenswert?

Ja, ich denke damit ist die Funktion von pulseout geklärt.
Diese Einschränkung sollte schon in der Hilfe stehen.

Ich werde jetzt den Impuls mit den Timern erzeugen.

Vielen Dank für die Hilfe
Ditt

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
Noch kein Account? Hier anmelden.