riešim presne časovanie cez timer1 na 1ms chcem sa poradiť ktorý kód bude lepší.
Ďakujem za všetky postrehy
- Kód: Vybrat vše
cli();//stop interrupts
//set timer1 interrupt at 1kHz
TCCR1A = 0;// set entire TCCR1A register to 0
TCCR1B = 0;// same for TCCR1B
TCNT1 = 0;//initialize counter value to 0
// set timer count for 1khz increments
OCR1A = 1999;// = (16*10^6) / (1000*8) - 1
//had to use 16 bit timer1 for this bc 1999>255, but could switch to timers 0 or 2 with larger prescaler
// turn on CTC mode
TCCR1B |= (1 << WGM12);
// Set CS11 bit for 8 prescaler
TCCR1B |= (1 << CS11);
// enable timer compare interrupt
TIMSK1 |= (1 << OCIE1A);
sei();//allow interrupts
alebo
- Kód: Vybrat vše
cli();
// Nastavenie časovača 1 na generovanie prerušenia každú 1 ms
TCCR1A = 0;
TCCR1B = (1 << WGM52) | (1 << CS51) | (1 << CS50); // Režim CTC a preddeľovač 64
OCR1A = 249; // Nastavenie hodnoty porovnania pre generovanie prerušenia každých 1 ms
TIMSK1 = (1 << OCIE1A); // Povolenie prerušenia pri dosiahnutí hodnoty porovnania
sei();