Пример, код на 10 строк - синтаксис цветной:
void init_timer() {
TCCR1A=0;TCCR1B=0;TCNT1 = 0;
/* Timer clock = I/O clock / 64 */
TCCR1B = (1<<CS11)|(1<<CS10);
//Capture on rising edge, enable noise canceler
TCCR1B |= (1 << ICES1)|(1 << ICNC1);;
/* Clear ICF1. Clear pending interrupts */
TIFR1 = 1<<ICF1;
/* Enable Timer 1 Capture Event Interrupt */
TIMSK1 = 1<<ICIE1;
Serial.printl("Timer initialized!");
}
Этот же кусок кода, повторенный дважды (специально, чтобы было понятно, что дело не в каких-то операторах в коде) - код весь черно-белый
void init_timer() {
TCCR1A=0;TCCR1B=0;TCNT1 = 0;
/* Timer clock = I/O clock / 64 */
TCCR1B = (1<<CS11)|(1<<CS10);
//Capture on rising edge, enable noise canceler
TCCR1B |= (1 << ICES1)|(1 << ICNC1);;
/* Clear ICF1. Clear pending interrupts */
TIFR1 = 1<<ICF1;
/* Enable Timer 1 Capture Event Interrupt */
TIMSK1 = 1<<ICIE1;
Serial.printl("Timer initialized!");
}
void init_timer2() {
TCCR1A=0;TCCR1B=0;TCNT1 = 0;
/* Timer clock = I/O clock / 64 */
TCCR1B = (1<<CS11)|(1<<CS10);
//Capture on rising edge, enable noise canceler
TCCR1B |= (1 << ICES1)|(1 << ICNC1);;
/* Clear ICF1. Clear pending interrupts */
TIFR1 = 1<<ICF1;
/* Enable Timer 1 Capture Event Interrupt */
TIMSK1 = 1<<ICIE1;
Serial.printl("Timer2 initialized!");
}