hallo,
ich möchte unabhängig von einander 2x fast-pwm benutzen um 2
transistoren zu steuern.
dazu habe ich mit timer1 eine fast-pwm auf port b6 initialisiert.
funktioniert auch soweit gut, ich kann auch die pulslänge mit OCR1B
steuern.
bisher sieht mein code wie folgt aus:
1 | //timer 1
|
2 | OCR1A = 0x005F; //periodendauer
|
3 |
|
4 | OCR1B = 0x000F; //TOP wert/pulsbreite
|
5 |
|
6 | //fast-pwm, toggle ocna on compare
|
7 | TCCR1A = TCCR1A & ((0<<COM1A1)|(1<<COM1A0)|(0<<COM1B1)|(1<<COM1B0)|(0<<COM1C1)|(1<<COM1C0)|(1<<WGM11)|(1<<WGM10));
|
8 | TCCR1A = TCCR1A | ((1<<COM1A1)|(0<<COM1A0)|(1<<COM1B1)|(0<<COM1B0)|(1<<COM1C1)|(0<<COM1C0)|(1<<WGM11)|(1<<WGM10));
|
9 |
|
10 | //clk/64
|
11 | TCCR1B = (0<<ICNC1)|(0<<ICES1)|(1<<WGM13)|(1<<WGM12)|(0<<CS12)|(1<<CS11)|(1<<CS10);
|
12 |
|
13 | DDRB |= (1 << DDB6); //port b6
|
nun möchte ich die zweite pwm initialisieren und dachte mir ich kann
dafür timer 3 nutzen. dieser baut auf die selben register auf nur vom
typ 3 eben für timer 3. das ganze hat so aber nicht geklappt. ich bin
mir nicht sicher, ob ich überhaupt diese beiden timer parallel nutzen
kann. ich weiss nicht, wie ich eine weitere fast-pwm initialisieren
kann, wo auch die pulslänge zu steuern ist. das datenblatt war mir nur
wenig hilfreich bisher. mit timer2 kam ich nicht ans gewünscht ziel.
vllt hat jemand eine idee oder kann mir gar weiter helfen ? :-)
1 | //timer 3
|
2 | OCR3A = 0x005F; //periodendauer
|
3 |
|
4 | OCR3B = 0x000F; //TOP wert/pulsbreite
|
5 |
|
6 | //fast-pwm, toggle ocna on compare
|
7 | TCCR3A = TCCR3A & ((0<<COM3A1)|(1<<COM3A0)|(0<<COM3B1)|(1<<COM3B0)|(0<<COM3C1)|(1<<COM3C0)|(1<<WGM31)|(1<<WGM30));
|
8 | TCCR3A = TCCR3A | ((1<<COM3A1)|(0<<COM3A0)|(1<<COM3B1)|(0<<COM3B0)|(1<<COM3C1)|(0<<COM3C0)|(1<<WGM31)|(1<<WGM30));
|
9 |
|
10 | //clk/64
|
11 | TCCR3B = (0<<ICNC3)|(0<<ICES3)|(1<<WGM33)|(1<<WGM32)|(0<<CS32)|(1<<CS31)|(1<<CS30);
|
12 |
|
13 | DDRB |= (1 << DDB4); //port b4
|
danke im voraus
liebe grüße !!