mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu PWM


Autor: Ferrice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

Ich möchte gerne eine Fast PWM mit meinem mega8535 machen und irgendwie
haut das ganze nicht so hin.
Hab das datenblatt jetzt schon öfters durchforstet aber ich komme nicht
so ganz drauf.

Meine Schritte:
1.)(DDRB = (1<<PB3) Pin andem sich oc0 befindet auf ausgang setzten.
2.) WGM00 und WGM01 setzen ---- FAST PWM
3.) COM00 und COM01 setzen ---- wenn der vergleichswert erreicht wird,
wird OC0 gesetzt. Wenn der Timer max erreicht hat, wird OC0 gelöscht.
4.) CS00 setzen .. Prescaler einstellen.. (hier kein prescaler da ich
mit dem simulator arbeite)
5.)OCR0 -- Vergleichswert laden... z.b. 0xF

so und jetzt müsste doch die ganze geschichte laufen oder??
oder hab ich da was falsch verstanden..

aber im simulator kann ich nicht mal sehen das sich der Wert 0x0F im
OCR0 befindet.. Erst wenn der Timer einen Overflow macht, steht OCR0 im
Simulator auf 0x0F.

der wert von OCR0 müsste doch erhalten bleiben.. oder muss ich den bei
jedem max vom timer wieder refreshen????

Code:

#include <avr/io.h>
#include <lcd.c>



void main ()
{
DDRB = (1<<PB3);
TCCR0 = (1<<WGM01) | (1<<WGM00) | (1<<COM01) | (1<<COM00) | (1<<CS00);
OCR0=0x0F;


for(;;);

}


Danke für eure Hilfe.
greets

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich kenn mich mit c ja nicht aus, aber das ist doch n hardware PWM
also brauchst du auch keine schleife! einfach den timer initialisieren
(mit prescaler 1, so dass er mit dem systemtakt arbeitet, aber nicht
dass er stehen bleibt!!) und dann den wert laden. jetzt sollte auf dem
pin das PWM signal ankommen!

Autor: Ferrice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das komische daran war ja das ich den wert lade aber laut simulator
kein wert im vergleichregister ist..

mfg

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie gesagt ... ich kenn mich mit c nciht aus! vielleicht spielt der
simulator auch verrückt! hast du den code s chon mal in nen controlle
geladen?

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe folgenden Code mal schnell im AVR-Studio eingehackt und da geht das
zumindest in der Sinulation:

.include "m8535def.inc"

.org 0x0
rjmp reset

reset:
 ldi r16,(1<<WGM01) | (1<<WGM00) | (1<<COM01) | (1<<COM00) | (1<<CS00)
 out TCCR0,r16
 ldi r16,(1<<PB3)
 out DDRB,r16
 ldi r16,0x0f
 out OCR0,r16

j1:
 rjmp j1

PinB.3 geht kurz auf low und dann auf high usw.
Drücke in der Simu die Taste "F11" führ Einzelschritt und öffne unter
I/O Port B.

MfG
Andi

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja ist doch gut! dann lad das in den controller und zum testen kannst du
den vorteiler mal sehr hoch stellen, dann kannst du das bei niedrigem
takt sogar mit ner LED sehen!

Autor: Ferrice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dankesehr für die mühen..

Habs jetzt selber einfach mal reingeflasht.. pwm funktioniert nur
scheint die simulation nicht ganz richtig zu sein..

der wert vom vergleichsregister wird erst dann angezeigt wenn der timer
einmal auf max war.

danke nochmals

mfg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.