Forum: Mikrocontroller und Digitale Elektronik Tiny44 kein Output bei OC0B


von peter24 (Gast)


Lesenswert?

Hallo zusammen,

ich möchte mit dem Tiny44 drei PWMs erzeugen. Da ich den INT0 verwenden 
muss kann ich den OC0A des Timers0 nicht nutzen. Somit liegen meine 
PWM-Kanäle auf
PWM1 = OC0B
PWM2 = OC1A
PWM3 = OC1B


Ich habe anhand des Datenblattes auch versucht alles richtig zu 
konfigurieren. Jedoch erhalte ich an OC0B keinen Output.
Mir ist schleierhaft was in meinem Code falsch ist. Vielleicht kann 
jemand mal kurz drüberschauen.
1
#include <avr/io.h>
2
3
#ifndef F_CPU
4
#define F_CPU 12000000UL
5
#endif
6
7
#define LED_DDR    DDRA
8
#define LED_PORT  PORTA
9
#define PIN_LED1  PA7
10
#define PIN_LED2  PA6
11
#define PIN_LED3  PA5
12
13
int main(void) {
14
15
// set LED-ports to output
16
LED_DDR |= (1 << PIN_LED1);
17
LED_DDR |= (1 << PIN_LED2);
18
LED_DDR |= (1 << PIN_LED3);
19
20
// init timers as fast PWM
21
TCCR0A |= (1 << WGM00) | (1 << WGM01);    // Fast PWM Mode 3
22
TCCR1A |= (1 << WGM10) | (1 << WGM12);    // Fast PWM Mode 5 (8bit)
23
24
// set prescaler 256
25
TCCR0B |= (1 << CS02);  // prescaler 256 -> 90Hz
26
TCCR1B |= (1 << CS12);  // prescaler 256 -> 90Hz
27
28
// set outputs to PWM
29
TCCR0B |= (1 << COM0B1) | (1 << COM0B0);
30
TCCR1A |= (1 << COM1A1) | (1 << COM1B1) | (1 << COM1A0) | (1 << COM1B0);
31
32
// Power led 
33
OCR0A = 0;
34
OCR0B = 127; 
35
OCR1A = 60; 
36
OCR1B = 127; 
37
38
39
while(1)
40
{
41
42
}
43
44
return 0; 
45
}

Vielen Dank im Vorfeld
Peter

von Thomas E. (thomase)


Lesenswert?

>> TCCR0B |= (1 << COM0B1) | (1 << COM0B0);

Die COM-Bits sind im TCCR0A-Register.

mfg.

von spess53 (Gast)


Lesenswert?

Hi

>TCCR0B |= (1 << COM0B1) | (1 << COM0B0);

MfG Spess

von peter24 (Gast)


Lesenswert?

Ohh vielen Dank.
Tja einmal in den Registern verutscht.
Jetzt funktioniert es.

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.