PWM programmieren im AN2131

Gast #2172146
Lesenswert?
• ▲
▼
Hallo ich bin hier auf das tolle forum gestossen, ich glaube ich werde 
hier hilfe finden :)

Es geht um eine PWM. WIe programmiert man eine PWM mit einen µC.
Mir geht durch den Kopf, eine for-Schleife zu machen und in ihr 
folgendes:

for(int i=0;i<10;i++)
{
OEB=0xFF;
}
OEB=0x00;

Dh. der positive ausgang bleibt länger eingeschalten und somit hat man 
eine PWM.
Aber ich habe gehört es geht anders auch, weil hier verändere ich ja 
auch meine Periodendauer bei dieser methode, ich will aber das die 
Periodendauer 30µs beträgt. zB.: 20µs EIN und 10µs AUS.
Hat wer eine Idee?

Danke im Vorhinein :D MFG Alex
Gast #2172165
Lesenswert?
• ▲
▼
Ja genau in SOftware, im KeilµVision in C.    Mein Vorschlag 
funktioniert ja auch aber ich will die periodendauer nicht verändern 
sondern sie soll gleich bleiben und nur EIN und AUSSCHALTZEIT sollten 
sich ändern.
Gruß Alex
#2172171
Lesenswert?
• ▲
▼
Alex Schauer schrieb:
> Ja genau in SOftware, im KeilµVision in C.    Mein Vorschlag
> funktioniert ja auch aber ich will die periodendauer nicht verändern
> sondern sie soll gleich bleiben und nur EIN und AUSSCHALTZEIT sollten
> sich ändern.

Endlosschleife:
1
int pwm_wert;
2
do {
3
 for(int i=0;i<30;i++) {
4
    if (i>pwm_wert) 
5
      PORT_ANSCHALTEN()
6
    else 
7
      PORT_ABSCHALTEN();
8
  }
9
} while (1)

Periodendauer ist dann immer "30", über "pwm_wert" kannst du die 
Einschaltdauer einstellen.

Statt "int" ggfs. 8-Bit-Variable nehmen ("uint8_t" bzw "unsigend char")
Gast #2172267
Lesenswert?
• ▲
▼
Danke für die schnelle Antwort. Aber ich verstehe das nicht , esagen wir 
mal das pwm_wert =10 ist. Das heisst dann das der Ausgang 0 ist weil ja 
i nicht größer als 10 ist. So sagen wir das die schleife jetzt bei 11 
angelangt ist, dann schaltet alles durch. Und danach bleibt ja immer 
alles durchgeschaltet weil ja das ''i'' dann immer grödßer bleibt, dh. 
es kommt ja dann nicht mehr zum einschalten oder? MFG

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.