Forum: Mikrocontroller und Digitale Elektronik Hardware-PWM , Fehler


von M. B. (freiberger77)


Lesenswert?

Hy,
ich versuche seit Ewigkeiten ein PWM-Signal am ATTiny2313 an Pin 14 
(Port PB2 = OC0A) zu erzeugen.
Habe leider überhaupt keine Ahnung davon.
Welchen Timer muß ich nehmen ?

Den Code habe ich aus einem Demo.
Suche eigentlich einen 8-Bit PWM.
1
  DDRB=(1<<PB2);
2
  TCCR0A=(1<<COM0A1)|(1<<WGM01)|(1<<WGM00); //fast-pwm, non inverted OC0A
3
  TCCR0B=(1<<CS01)|(1<<CS00); //Prescaler 1/64
4
  OCR0A=200;
Aber irgendwie leuchtet die LED nicht...

Takt = 8 MHZ ( div 8 )

In der Suche habe ich leider nix passendes gefunden...

von Ic (Gast)


Lesenswert?

Ohne jetzt großartig geschaut zu haben (Bin bei Assembler zu Hause) 
fehlen mir da die Einstellungen von TIMSK etc.

von M. B. (freiberger77)


Lesenswert?

Was für Werte brauchst du denn (und wo finde ich die) ?

von Vlad T. (vlad_tepesch)


Lesenswert?

er will keine Interupts, sondern PWM, aber ich find den fehler auch grad 
nicht.
Meiner Meinung nach, sollte das funktionieren.

Mal ganz dumm gefragt: die led ist richtig rum und hat den richtigen 
Vorwiderstand?

Edit:
oder bist du sicher, dass der Fehler nicht in dem Code liegt, den du 
nicht gepostet hast?
zeig mal alles.

von Ic (Gast)


Lesenswert?

Ich weiß nicht, ob das bei C relevant ist. Such mal in der von dir 
angesprochenen Demo nach dem Register "TIMSK". Bei Firefox STRG+F.

Vielleicht hilft dir das weiter.

von M. B. (freiberger77)


Lesenswert?

in dem Demo stand nur dieser Code, mehr nicht...

von M. B. (freiberger77)


Lesenswert?

die LED ist richtig angeschlossen...
wenn ich die LED ...
1
 DDRB  = 0b00000100; // LED = Ausgang
2
3
 PORTB = 0b00000100;
4
 PORTB = 0b00000000;
;
an und ausschalte, blinkt die LED...

von Karl H. (kbuchegg)


Lesenswert?

Marco B. schrieb:
> in dem Demo stand nur dieser Code, mehr nicht...

und wie sieht dein komplettes Program aus?

(Und du solltest dir bei Atmel das Datenblatt zu deinem Prozessor 
downloaden. Dort findet sich alles was man wissen muss)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.