Archiv verlassen und diese Seite im Standarddesign anzeigen : ATmega16 Timer1 Beispiel CTC
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/mikrocontroller/source-code/ATMega16/ATmega16-Timer1-CTC-1.htm
Hilft dir das weiter?
Gruss
Kresley
oberallgeier
29.01.2013, 08:57
Hi Simba,
willkommen im Forum.
... Ich versuch hier verzweifelt auf dem ATmega16 den Timer1 im CTC aufzusetzen ...Hast Du schon die Dokumentation dazu gelesen? Sind zwar ETLICHE Seiten, aber recht nützlich.
... einen Beispielcode in C, der mir zeigt, wie man das macht? ...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 die
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).
// ================================================== ============================ =
// == 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
}
// ================================================== ============================ =
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/mikrocontroller/source-code/ATMega16/ATmega16-Timer1-CTC-1.htm
Hilft dir das weiter?
Gruss
Kresley
Ja hey, danke, genau das hab ich gebraucht!
Danke Kresley
Danke auch Oberalgeier, aber der andere Code war etwas einfacher und hats bereits gebracht.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.