SoftwareSerial の罠

ATtiny13 では SoftwareSerial が使えないので、ATtiny85 あたりを使用してみることにしました。ここで思ってもいなかった罠に出遭いました。

やりたかったことは、 PCINTx を使って、ピンの状態が変化したときに割り込みをかけるということです。割り込みをかけて、マイコンをスリープから起こす、といったことを目的としていて、この部分はひとまず実装ができました。

起こったこと

これを動作確認のために PC で動作ログを追っていこうと考え、シリアル通信としてログを出していくことにしました。 ここで SoftwareSerial を使ったのですが、これが問題でした。

実は SoftwareSerial の実装では PCINT の割り込みを全て使用して作られていたのです。そのため割り込みハンドラが自分のとライブラリとのバッティングが起こってしまい、コンパイルそのものができなくなってしまいました。

結論

公式のフォーラムでもこの話題をしている人がいました。

この様子を見ると同時使用は不可能というので決まりのようです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする