Arduino Ameba - button 按鍵時間 - GPIO pulseIn

可以參考這篇 : http://coopermaa2nd.blogspot.tw/2011/04/pulsein-button.html 

可以用 按鍵控制 LED 接線方式

Arduino PulseIn API : https://www.arduino.cc/en/Reference/PulseIn

  pulseIn 會回傳一個 unsigned long 值, 代表這個狀態持續的時間, 單位是 us.

  需要注意的是, 他的量測起始時間會先等到下一個狀態變化為設定值開始量測.
   例如 如果是做 pulseIn(pin, HIGH), 且現在狀態已經是 HIGH,
  他會等 GPIO 變成 LOW 再變 HIGH 時開始量測.

int pin = 7;
unsigned long duration;

void setup()
{
  pinMode(pin, INPUT);
}

void loop()
{
  duration = pulseIn(pin, HIGH);
}


程式

這程式會量測 button 按著的時間.

結果 :




改進 :

目前程式 wiring_pulse.cpp 是用 polling 方式來做, 比較耗 CPU 資源.
將來可以改成用 GPIO interrupt 方式來做.

留言

熱門文章