外部割込み
外部割込みを使用して、ピンの電圧変化(ピンがLOWからHIGHに、またはその逆になる)を行い、関数を呼び出すことができます。 これは、ピンが変化するまでループで待機することにより、ピンの変化を「手動で」チェックするのを避けるために使用できます。
概要
外部割り込みは、イベントがMapleの外部で発生したときを検出するためによく使用されます。 例示的なイベントには、センサが読み込みの準備ができているとき、またはボタンが押されたときが含まれる。 このようなイベントが発生すると、割り込みが発生し、Maple(Arduino STM32)は何をしていても(中断しています)、停止し、attachInterrupt()を使って指定した関数(割り込みハンドラと呼ばれる)を呼び出すことによってイベントに反応します。 どのピンも外部割り込みに使用できますが、いくつかの制限があります。 一度に最大16個の外部割り込みを使用できます。 さらに、使用する16ピンを選ぶことはできません。 これは、Maple(Arduino STM32)のすべてのピンがEXTIラインに接続され、EXTIラインごとに1つのピンしか外部割り込みに使用できないためです(*1)。
ボードのEXTIライン・ピン・マップには、どのピンがEXTIラインに接続されているかが記載されています。
関数リファレンス
おすすめの読み物
STマニュアルRM0008(PDF)、第9章「汎用および兼用I / O」、第10章「割り込みとイベント」を参照してください。 脚注
(*1)この制限の根底にある理由は、STM32の外部割り込みラインがGPIOポート間で共有されるためです。 すべてのポートのうち、各GPIOビットには1つの外部割り込みしかありません。 つまり、PA4に外部割り込みがある場合、PB4には外部割り込みもありません。 GPIOビット番号は0から15までしかないので、一度に16個の外部割り込みがあります。
このドキュメントはleafLabs, LLC.が執筆し、たま吉が翻訳・一部加筆修正したものです。