SyntaxHighlighter

---SyntaxHighlighter ウィジェット---

2015年5月26日火曜日

Arduino LeonardでUSBを生かしつつ割り込みを禁止する

Arduino Leonardで、USB機能を使いつつ、タイミングシビアな信号を受け取りたい、という時。

結構単純で、ループ毎に(感覚的には500ms以内くらい?)

  interrupts();
  delay(2);
  noInterrupts();

を実行してやれば、通信には成功する模様。
delayは1msでは失敗し、2ms以上では問題ないようだ。

また、delayでなくとも、割り込みを許可した状態で一定以上の時間があればいいようだ。
USBの仕様的には、1ループ50ms以内がいいだろう。

0 件のコメント:

コメントを投稿