Gast
#1987030
Hallo,
ich hätte eine Frage bezüglich der Timerfrequenz beim Mega168.
Der MC ist mit dem internen Oszillator, 8MHz getaktet.
Der Prescaler beim Timer1 ist auf 1 eingestellt.
void timer1_comp_init(void)
{
TIMSK1=(1<<OCIE1A);
Timer1_Prescaler1
OCR1A=100;
}
Wenn ich nun einen Compare-Interrupt bei einer Zählweite von 100
(OCR1A=100) auslöse und dort einen Port Pin toggle, dann messe ich
29.2kHz.
Rechnerisch hätte ich ja erwartet:
f=8Mhz/100=80kHz
Die Interruptroutine lautet:
ISR (TIMER1_COMPA_vect)
{
extern uint8_t nextStep;
extern unsigned char stepTable[2];
TCNT1=0;
Bridge_PORT = stepTable[(nextStep)];
nextStep = (nextStep^1);
}
Compileroptimierung ist deaktiviert.
Die maximale Frequenz die ich erreiche ist 47kHz.
Wie wäre es möglich einen Port Pin min 100kHz zu toggeln ?
Vielen Dank für die Hilfe !
Grüße