Forum: Mikrocontroller und Digitale Elektronik PWM mit 4433


von Jan (Gast)


Lesenswert?

Hallo!
Auf meinem Weg in den Einstieg der Mikrocontroller bin ich jett bei PWM 
angelangt. Ich möchte eine einfache Rechteckspannung erzeigen. Frequenz 
und Tastverhältnis spielen absolut keine Rolle.
Ich hab mir gerade das Datasheet angeschaut und im Internet gesucht. Aus 
dem Datasheet werd ich nicht so ganz schlau und auch meine Suche ist 
weniger erflogreich ausgegangen. In Forum hab ich auch geschaut aber 
drei Buchstaben werden von der Suchmaschine wohl ignoriert.

Was ich suche ist ein einfaches Bsp. für Hardware PWM mit dem AT90S4433 
in Assembler.

Vielen Dank für eure Hilfe!
Jan

: Gesperrt durch Moderator
von Sascha Rother (Gast)


Lesenswert?

Könnte dir wohl C-Code anbieten.

von Andreas Wiese (Gast)


Lesenswert?

Hallo,

ist im Prinzip ganz einfach:

Mit dem 16bit Timer1 kannst du eine 8,9, oder 10bit PWM erzeugen:
Das entsprechende Signal wird am OCR1 ausgegeben
Die Grundeinstellung wird im TCCR1A festgelegt
Bit 6 und 7 legen fest, ob es ein invertierte oder nicht invertierte PWM 
sein soll.
Bit 0 und 1 legen fest, ob die Auflösung 8,9,oder 10 bit sein soll.
Mit dem CompareRegister legst du nun das Tastverhältnis fest.
Bei 10 bit Auflösung sind das Werte von 0 bis 1023
Die Frequenz legst du über die Chipfrequenz und die Taktteilerbits 
0,1und 2 im TCCR1B fest

Also kurzes Beispiel für nicht-invertierte 10bit PWM mit Verhältnis 1:1 
und max Frequenz:

.equ highwert=511 ;im Verhältnis zur ganzen Periode=1023
ldi r16,0b10000011
out TCCR1A,r16
ldi r16,0b00000001
out TCCR1B,r16
ldi r16,high(highwert)
out OCR1H,r16
ldi r16,low(highwert)
out OCR1L,r16

Ich hoffe das funktioniert bei dir so

Gruß
Andreas

von Jan (Gast)


Lesenswert?

Hallo!

@sascha: Benötige Assembler, trotzdem vielen Dank für deine Hilfe! 
(könntest es ja trotzdem mal posten, dann werd ichs auf meinem PC 
sichern, falls ich es mal später brauch; Danke!)

@Andreas: Danke, das ist genau das was ich gesucht habe. Die Erklärung 
im Datasheet ist etwas undeutlich, zumindest, wenn man wenig Englisch 
versteht ;-)
Es hat auf Anhieb funktioniert und ich habs sofort verstanden.
Danke nochmals!

Grüße
Jan

von Sascha Rother (Gast)


Angehängte Dateien:

Lesenswert?

Gerne. Source-Code im Anhang. Ich habe mit zwei Tastern und einem 
LCD-Display die Helligkeit einer Glühbirne gesteuert. Auswertung der 
Taster und Ansteuerung des LCD musst du einfach drüberwegsehen. Der Rest 
ist dann für die PWM.

Gruß, Sascha

von Jan (Gast)


Lesenswert?

Super, danke!

von Jordan (Gast)


Lesenswert?

Hallo

Ich habe einen Projekt und meine Aufgabe besteht darin , die Spannung zu 
verringern .Dafür habe ich ein Buckregler gebaut.Aber um diese 
Buckregler zu steuren muss ich ein PWM erzeugen , Programmieren ( 
Frequenz 72Khz ,U = 5V ).ein Programmbeispiel wäre sehr hilfreich .

Ich bedanke mich bei euch .

Jordan

von m.n. (Gast)


Lesenswert?

Jordan schrieb:
> Ich bedanke mich bei euch .

Wir danken und gratulieren Dir!
Nach 13 Jahren eine Leiche auszubuddeln, hat bilsang noch niemand 
geschafft.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jordan schrieb:
> Ich habe einen Projekt und meine Aufgabe besteht darin , die Spannung zu
> verringern
Und dann nimmst du einfach irgendeinen 13 Jahre alten Thread wo "PWM" 
dransteht und hängst hinten deine Frage an?

Stell die Frage nochmal in DEINEM eigenen Thread.

> ein Programmbeispiel wäre sehr hilfreich .
In welcher Sprache?

: Bearbeitet durch Moderator
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.