一千萬個為什麽

搜索

如何將中斷附加到Arduino UNO定時器?

我知道Arduino UNO上有3個計時器。我需要使用哪些特定寄存器來訪問它們?

我的目標是使用這些計時器來輪詢我使用ms周期的不同傳感器。那裏有預制的圖書館嗎?

最佳答案

對於UNO,請使用Timer1。

您可以使用它的方式示例如下:

Download the TimerOne library: https://code.google.com/p/arduino-timerone/downloads/list

/*
 *  Timer1 library example
 */

#include "TimerOne.h"

void setup()
{
  pinMode(10, OUTPUT);
  Timer1.initialize(500000);        //initialize timer1, and set a 1/2 second period
  Timer1.pwm(9, 512);               //setup pwm on pin 9, 50% duty cycle
  Timer1.attachInterrupt(callback); //attaches callback() as a timer overflow interrupt
}

void callback()
{
  digitalWrite(10, digitalRead(10) ^ 1);
}

void loop()
{
 //your program here...
}

轉載註明原文: 如何將中斷附加到Arduino UNO定時器?