http://winavr.scienceprog.com/interfaci ... o-atmega32
Furt to fungovalo nějak blbě. Bylo nutný nastavit větší vzorkovací rychlost. Ta je ovlivněna předděličkou Timeru 2. Původně byla nastavená na 256.
Kód: Vybrat vše
void Timer2_Start(void)
{
TCCR2|=(1<<CS22)|(1<<CS21); //prescaller 256 ~122 interrupts/s
TIMSK|=(1<<TOIE2);//Enable Timer0 Overflow interrupts
}Změnil jsem to raději na 8.
Kód: Vybrat vše
ISR(TIMER2_OVF_vect)
{
RotaryCheckStatus(); //reading rotary and button
}
int main(void) {
TCNT2=0x00;
TIMSK=0b01000000; //Enable Timer2 Overflow interrupts
TCCR2=0b00000010; //prescaller 8
//the sample rate must be fast enough!
sei(); //GLOBAL INTERRUPT ENABLE!!!