我發現,當我使用定時器1 micros()
功能停止正常運行。我認爲:TCCR1B打破微型()
- Arduino的內部功能(除了PWM其上我不使用銷9. 10)使用計時器0
micros()
功能實際上不依靠定時器(但米利斯一樣)
如果我稱之爲setup()
TCCR1B |= (1 << CS11) | (1 << CS10);
。
微功能將在約0.25秒後開始報告零星值。例如。之後,micros()會以非常低的速率增加,並且往往會倒退。
我正在測試一個Arduino Uno。
我也試着檢查被調用的定時器中斷是否可能太重。除了一些整數數學和一個數字寫法之外,它沒有做任何事情。
謝謝JLH!同時我也發現這是一箇中斷太重的問題。實際上,即使我在一些if語句之後附加一個'return'來突破函數,它仍然會溢出。我想使用計時器來控制步進電機(我想擁有「音調」之類的東西,但也能夠知道所執行步驟的確切數量)。試圖削減脂肪(並可以考慮更快的digitalWrite).. –
我設法解決我的問題,切換到使用Timer2的FlexiTimer2庫。 –