Hi Ich möchte eine Hardware PWM generieren, also Pin toggeln ohne Interrupt. Ich verwende einen ATTiny44. Das Problem ist, dass OC1B(PinA5) nicht automatisch toggelt. Wenn ich über TIMSK1 |= (1<<OCIE1B); das Interrupt freischalte dann springt er in die ISR --> ISR (TIM1_COMPB_vect) . Aber das muss doch auch automatisch gehen? Hab ich bei den Registern was falsch gesetzt. TCCR1A |= (1 << COM1B0); // Toggle OC1B on Compare Match TCNT1 = 0; // Counter auf 0 stellen OCR1A=62500; TCCR1B |= ((1<<WGM12)|(1<<CS11)); // Teiler 8, CTC Mode Gruß Martin
Hi >Ich möchte eine Hardware PWM generieren, also Pin toggeln ohne... Und warum dann das: >TCCR1B |= ((1<<WGM12)|(1<<CS11)); // Teiler 8, CTC Mode MfG Spess
Und warum dann das:
>TCCR1B |= ((1<<WGM12)|(1<<CS11)); // Teiler 8, CTC Mode
Mit WGM12 stelle ich doch den CTC Mode ein.
Was soll daran falsch sein, oder kann ich mit dem CTC Mode nicht das
OC1B toggeln lassen?
Hi >Was soll daran falsch sein, oder kann ich mit dem CTC Mode nicht das >OC1B toggeln lassen? Was denn nun? PWM oder CTC? >oder kann ich mit dem CTC Mode nicht das OC1B toggeln lassen? Nein. Nur mit OC1A. Siehe 'Table 12-5. Waveform Generation Modes' MfG Spess
In Table 12-2 steht --> Toggle OC1A/OC1B on Compare Match. Wenn ich also OCR1A einen Werte gebe, müsste doch bei einem Compare des Timerwertes das OC1B toggeln. Oder muss ich jetzt auf FastPWM zurückgreifen, ich möchte ja nur eine LED blinken lassen? Gruß Martin
Hi >In Table 12-2 steht --> Toggle OC1A/OC1B on Compare Match. Richtig. Aber nur bei OC1A wird bei CTC auch der Timer zurückgesetzt. Ist dein OC1A-Pin schon belegt, oder was hindert dich daran die LED an PA6 zu hängen? >Oder muss ich jetzt auf FastPWM zurückgreifen, ich möchte ja nur eine >LED blinken lassen? Es gibt mehrere Möglichkeiten. Du kannst auch CTC mit dem ICR1 machen und im TIM1_CAPT-Interrupt ein Pin togglen. Beim ATTiny44 geht das recht einfach: Einfach eine 1 in das entsprechende PIN-Register schreiben. MfG Spess
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.