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
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
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
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
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
Jordan schrieb: > Ich bedanke mich bei euch . Wir danken und gratulieren Dir! Nach 13 Jahren eine Leiche auszubuddeln, hat bilsang noch niemand geschafft.
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