2bam

8kHz Arduino UNO interrupt timer

Apr 9th, 2014
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.60 KB | None | 0 0
  1. #define PIN_SPK     9
  2. bool on = false;
  3.  
  4. ISR(TIMER2_COMPA_vect) {
  5.     //Esto se ejecuta a 8kHz    
  6.     digitalWrite(PIN_SPK, on);
  7.     on = !on;
  8. }
  9.  
  10. void setup(void) {
  11.     cli();
  12.     //set timer2 interrupt at 8kHz
  13.     TCCR2A = 0;// set entire TCCR2A register to 0
  14.     TCCR2B = 0;// same for TCCR2B
  15.     // set timer count for 8khz increments
  16.     OCR2A = 249;// = (1/8000) / ((1/(16*10^6))*8) - 1
  17.     // turn on CTC mode
  18.     TCCR2B |= (1 << WGM12);
  19.     // Set CS20 bit for 1 prescaler
  20.     TCCR2B |= 1;      //no prescale
  21.     // enable timer compare interrupt
  22.     TIMSK2 |= (1 << OCIE2A);
  23.     sei();
  24. }
Advertisement
Add Comment
Please, Sign In to add comment