Icon2k
25.12.2010, 15:07
Hy,
Ich habe eine 3x3 LED Matrix und einen ATmega32. Die LED Matrix wird in der "main"-Funktion, bei jedem Schleifendurchlauf multigeplext:
while ( 1 )
{
mp_plex ();
}
An Timer2 habe ich zwischen TOSC1 und 2 einen 32,768kHz Uhrenquarz angeschlossen. Der Timer löst einen Interrupt aus, indem das Bild, das die LED Matrix anzeigt, geändert wird.
Meine Annahme
Das heisst der Timer2 Interrupt müsste pro Sekunde 32768 Mal aufgerufen werden. Wenn ich über TCCR2 den Prescaler auf 32 setze, dann müssten doch immer noch 1024 Interrupts pro Sekunde ausgelöst werden, also 1024 neue Bilder.
Das Ergebnis
Aber es werden nur ca 2 - 3 Bilder pro Sekunde angezeigt. Wo sind die anderen 1020 Bilder/s oder wo liegt mein Denkfehler?
MfG Icon
Ich habe eine 3x3 LED Matrix und einen ATmega32. Die LED Matrix wird in der "main"-Funktion, bei jedem Schleifendurchlauf multigeplext:
while ( 1 )
{
mp_plex ();
}
An Timer2 habe ich zwischen TOSC1 und 2 einen 32,768kHz Uhrenquarz angeschlossen. Der Timer löst einen Interrupt aus, indem das Bild, das die LED Matrix anzeigt, geändert wird.
Meine Annahme
Das heisst der Timer2 Interrupt müsste pro Sekunde 32768 Mal aufgerufen werden. Wenn ich über TCCR2 den Prescaler auf 32 setze, dann müssten doch immer noch 1024 Interrupts pro Sekunde ausgelöst werden, also 1024 neue Bilder.
Das Ergebnis
Aber es werden nur ca 2 - 3 Bilder pro Sekunde angezeigt. Wo sind die anderen 1020 Bilder/s oder wo liegt mein Denkfehler?
MfG Icon