Forum: Mikrocontroller und Digitale Elektronik ATTiny26-16PU, Internal Clock, PWM funktioniert nicht


von Stefan (Gast)


Lesenswert?

Hallo,

ich bin leider komplett neu im Bereich des AVR und sitze schon eine 
Weile vor einem Problem: Ich bekomme die PWM beim ATTiny26 nicht zum 
Laufen.

Was funktioniert:
Direktes Ein- & Ausschalten einer LED am Port PB3 funktioniert.
PWM funktioniert nicht - Die LED an PB3 bleibt immer ein (Ausgang auf 
LOW)

Als Clock verwende ich den internen, also ohne Quarz.

Anbei meine Initialisierungsroutine:
1
// data direction Port A (0..IN/1..OUT)
2
DDRA = 0x00 | (1<<DDA3) | (1<<DDA4) | (1<<DDA5) | (1<<DDA6) | (1<<DDA7);
3
  
4
// data direction Port B (0..IN/1..OUT)
5
DDRB = 0x00 | (1<<DDB3) | (1<<DDB4) | (1<<DDB6);
6
  
7
// ADC activation - ENABLE | PRESCALER8
8
ADCSR = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0);
9
            
10
// PWM config
11
TCCR1B = (1 << CS10);  // start up timer1, no prescaler
12
TCCR1A = ((1 << COM1A0) | (1 << PWM1A));
13
OCR1B = 128;

Evtl. kann mir ja wer weiterhelfen.

Danke!!

Stefan

von spess53 (Gast)


Lesenswert?

Hi

>TCCR1A = ((1 << COM1A0) | (1 << PWM1A));

/OC1A und OC1A liegen aber auf PB0 und PB1. Und die sind bei dir 
Eingang.

MfG Spess

von Max D. (max_d)


Lesenswert?

PB3 gehört zu OC1B du scchreibst aber (1 << COM1A0)

von Stefan (Gast)


Lesenswert?

Hallo Spess, hallo Max,

vielen Dank für die Antworten.
Hab das ganze jetzt auf

TCCR1A = ((1 << COM1B0) | (1 << PWM1A));

geändert. Es mag trotzdem nicht - Die LED bleibt jetzt aus (high)

von Stefan (Gast)


Lesenswert?

Korrigiere:

Auf

  TCCR1A = ((1 << COM1B0) | (1 << PWM1B));

geändert.

von Max D. (max_d)


Lesenswert?

OCR1C = x  mit 0<x<255

von Stefan (Gast)


Lesenswert?

Danke!!
Stef

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.