Soft-PWM: Ausgangsports während der Initialisierung dauerhaft "aus"?

OP #3037236
Lesenswert?

Hallo an alle,

habe eine Frage bezügich des Soft-PWM-Tutorials - Implementierung der 
Version 3 (http://www.mikrocontroller.net/articles/Soft-PWM): Sobald ich 
das Programm auf meinen Microcontroller schreibe, werden anschließend 
bei der Initialisierung des Programms alle Ports auf high gesetzt, so 
dass die LEDs an den Pins leuchten.

Natürlich kann man die LEDs im eigentlichen Programmablauf direkt auf 
low setzten, so dass diese ausgehen, jedoch stört es mich etwas, dass 
die Leds jedes Mal kurz aufleuchten, wenn ich den µC einschalte.

Kann man irgendwie verhinden, dass die Ausgänge ein Signal bei der 
Initialisierung bekommen?

Gruß
Gast #3037246
Lesenswert?

Thomas J. schrieb:

> Natürlich kann man die LEDs im eigentlichen Programmablauf direkt auf
> low setzten, so dass diese ausgehen, jedoch stört es mich etwas, dass
> die Leds jedes Mal kurz aufleuchten, wenn ich den µC einschalte.
>
> Kann man irgendwie verhinden, dass die Ausgänge ein Signal bei der
> Initialisierung bekommen?
>
> Gruß

Das ist eigentlich schon richtig so, da man den Minus Pol der LEDs gerne 
an den Controller legt. Die leuchten dann bei "Null" und sind bei "Eins" 
aus.
#3037296
Lesenswert?

Setz den Port halt bei der Initialisierung auf den Wert, den Du willst:
1
PWM_PORT = 0xFF;
bzw.
1
PWM_PORT = 0x00;
Je nachdem wie die LEDs angeschlossen sind.

Vor dem Umschalten des Ports machst Du das gleiche. Und drauf achten, 
dass der Timer-Interrupt nicht dazwischenfunkt:
1
cli();
2
PWM_PORT = 0xFF;
3
pwm_port = &PORTD;
4
sei();

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren