Kalkulačka je na adrese http://www.arduinoslovakia.eu/applicati ... calculator
Napríklad takto to vyzerá pre Timer1 a frekvenciu 1 Hz.
Kód: Vybrať všetko
// AVR Timer CTC Interrupts Calculator
// v. 5
// http://www.arduinoslovakia.eu/application/timer-calculator
// Microcontroller: ATmega328P
// Created: 2017-03-10T14:58:38.698Z
#define ledPin 13
void setupTimer1() {
noInterrupts();
// Clear registers
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
// 1 Hz (16000000/((15624+1)*1024))
OCR1A = 15624;
// CTC
TCCR1B |= (1 << WGM12);
// Prescaler 1024
TCCR1B |= (1 << CS12) | (1 << CS10);
// Output Compare Match A Interrupt Enable
TIMSK1 |= (1 << OCIE1A);
interrupts();
}
void setup() {
pinMode(ledPin, OUTPUT);
setupTimer1();
}
void loop() {
}
ISR(TIMER1_COMPA_vect) {
digitalWrite(ledPin, digitalRead(ledPin) ^ 1);
}
Niekoľko ukážok kódu, ktoré som pomocou toho generoval.
https://github.com/RoboUlbricht/arduino ... ster/timer