天天看點

Arduino UNO定時器的使用示例

Arduino 定時器的使用示例

  • Arduino UNO闆而言,它的控制晶片是atmega328,它有0、1、2三個定時計數器,除了定時中斷,它們還可以控制引腳pwm輸出,通過查詢晶片手冊和引腳分布可知這三個定時器分别控制的引腳。

T/C0: Pin6(OC0A)和Pin5(OC0B)

T/C1: Pin9(OC1A)和Pin10(OC1B)

T/C3: Pin11(OC2A)和Pin3(OC2B)

實際上Arduino已經将T/C0的溢出中斷運用到了delay()、delayMicroseconds、millis()、micros()中,這些函數都寫在了Arduino核心代碼wiring.c檔案中,
  • 注意: Arduino 的 PWM 輸出是依靠内置的3個 Timer 來控制的,是以 Timer1 會同時影響到 D9、D10 兩個端口的 analogWrite() 方法,但可以通過調用
  • Timer1.pwm(pin, duty, period) 來設定,duty 是占空比(分辨率為10bits,取值0~1023),period 是可選參數,設定周期,如果不設定則為預設值,範圍為 1 ~ 8388480us,即最大可産生1MHz方波
使用定時器讓闆載LED每0.5s切換一下狀态示例:TimerOne 庫函數調用的是 Timer1 定時器。

繼續閱讀