Hallo
Ich versuch hier verzweifelt auf dem ATmega16 den Timer1 im CTC aufzusetzen.
Hat jemand einen Beispielcode in C, der mir zeigt, wie man das macht?
Vielen Dank
Simba
Druckbare Version
Hallo
Ich versuch hier verzweifelt auf dem ATmega16 den Timer1 im CTC aufzusetzen.
Hat jemand einen Beispielcode in C, der mir zeigt, wie man das macht?
Vielen Dank
Simba
Hi
Da gibt es eine Sourcecode Beispiel Sammlung auf electronicsplanet.ch. Für den Timer1 CTC ist da auch was dabei ;-)
http://www.electronicsplanet.ch/mikr...mer1-CTC-1.htm
Hilft dir das weiter?
Gruss
Kresley
Hi Simba,
willkommen im Forum.
Hast Du schon die Dokumentation dazu gelesen? Sind zwar ETLICHE Seiten, aber recht nützlich.Der Code ist für nen mega1284 - der mega16 dürfte nicht viel anders sein. Natürlich wirst Du die Parameter selber einstellen müssen. Im Code wird dann dieZitat:
... Ich versuch hier verzweifelt auf dem ATmega16 den Timer1 im CTC aufzusetzen ...
ISR (TIMER1_COMPA_vect) // Servo[Svpt] wählen + dessen Rampe starten
aufgerufen, es läuft keine Hardware-PWM . . . (wenn das Deine nächste Frage sein sollte).
Code:// ============================================================================== =
// == Timer1 Aufgabe: Servo mit Soft-PWM ansteuern auf wählbarem Port
// Beispiel: ....
// - - - - - - - - - - - - - - - -
void TC1TMR_init(void) // Init Timer/Counter 1 für 2 ms Servoperiode
{ //
TCCR1B |= (1<<WGM12); // WGM12 => CTC, TOP = OCR1A S133
TCCR1B |= (1<<CS11); // CS11+10 <=> clk/8 => 2,500 MHz S134
OCR1A = 6400; // => alle 2,56 ms ein Interrupt
TIMSK1 |= (1<<OCIE1A); // Tmr/Cntr1 Oput CompA Mtch intrrpt enabled
// - - - - - - - - - - - - - - - -
}
// ============================================================================== =
// ============================================================================== =
// == Timer1
// - - - - - - - - - - - - - - - -
void TC1TMR_on(void) // Init Timer/Counter enable
{ //
TIMSK1 |= (1<<OCIE1A); // Tmr/Cntr1 Oput CompA Mtch intrrpt enabled
}
// ============================================================================== =
// ============================================================================== =
// == Timer1
// - - - - - - - - - - - - - - - -
void TC1TMR_off(void) // Init Timer/Counter disable
{ //
TIMSK1 &= ~(1<<OCIE1A); // Tmr/Cntr1 Oput CompA Mtch intrrpt disabled
}
// ============================================================================== =