Hallo, ich schreib gerade mein erstes Programm für meinen ATmega1284p.
Ich wollte mit einem Timer ein Zeitsignal von 200ms erzeugen. Ich hab
mir ausgerechnet, dass beim CTC Modus des Timers 1, dieser Wert auf
15624 gestellt werden müsste, mit einem Tool bin ich dann auf den Wert
0x3D08 gekommen, was ja doch relativ nahe dran liegt :-)
Leider stimmt die Zeit aber kein bisschen, daher hab ich wohl irgendwas
falsch gemacht. Hier sind meine bescheidenen Anfänge :-(
1 | TCCR1A = (1<<WGM01); // CTC Modus
|
2 | TCCR1B |= (1<<CS12); // Prescaler 256
|
3 | TCCR1B &= ~ (1<<CS10) | (1<<CS10);
|
4 | OCR1A = 0x3D08;
|
5 |
|
6 | TIMSK1 |= (1<<OCIE1A);
|
1 | ISR (TIMER1_COMPA_vect) //5)Führe diese ISR aus wenn TCNT2==OCR2
|
2 | {
|
3 | wdt_reset();
|
4 | sekunde++;
|
5 | uart_puti(sekunde);
|
6 | }
|
Grüße Toni