なんだかいつのまにか、macbookで普通に認識されるようになってました。
この間やったこと:
キーを押したら一定時間反応しない機能(デバウンス)を盛り込む。
最終的にこんな風になりました。
usbKeyMono.pde:
125行目
この間やったこと:
キーを押したら一定時間反応しない機能(デバウンス)を盛り込む。
最終的にこんな風になりました。
usbKeyMono.pde:
#include <UsbKeyboard.h>
#define BUTTON_PIN 12
int reading;
int prevRead = HIGH;
// If the timer isr is corrected
// to not take so long change this to 0.
#define BYPASS_TIMER_ISR 1
void setup() {
pinMode(BUTTON_PIN, INPUT);
digitalWrite(BUTTON_PIN, HIGH);
#if BYPASS_TIMER_ISR
// disable timer 0 overflow interrupt (used for millis)
TIMSK0&=!(1<<TOIE0); // ++
#endif
}
#if BYPASS_TIMER_ISR
void delayMs(unsigned int ms) {
/*
*/
for (int i = 0; i < ms; i++) {
delayMicroseconds(1000);
}
}
#endif
void loop(){
UsbKeyboard.update();
digitalWrite(13,!digitalRead(13));
reading = digitalRead(BUTTON_PIN);
if(!reading){
if(prevRead) UsbKeyboard.sendKeyStroke(KEY_ARROW_DOWN);
#if BYPASS_TIMER_ISR // check if timer isr fixed.
delayMs(200);
#else
delay(200);
#endif
}
prevRead = reading;
#if BYPASS_TIMER_ISR // check if timer isr fixed.
delayMs(20);
#else
delay(20);
#endif
}
矢印キーがUsbKeyboard.hにちゃんと登録されていなかったので書きこんでおく。125行目
#define KEY_ARROW_LEFT 0x50
を消して以下を挿入。
#define KEY_ARROW_RIGHT 79
#define KEY_ARROW_LEFT 80
#define KEY_ARROW_DOWN 81
#define KEY_ARROW_UP 82
コメント
コメントを投稿