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 方式來做.
可以用 按鍵控制 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 方式來做.
留言
張貼留言