立秋個人用AVRwiki メモ用できたプログラムとかわかった仕組みとか記録用間違ってても知らん

チカチカも飽きてきたところで、次に外部割り込みというものをやりたいと思います。
2回も同じこと言いたくないので、☆のところは使うピンの数に変えて下さい。(INT1のときは☆→1、INT0のときは☆→0って感じで)

外部割り込みって何

  • ピンに変化があったらかかる割り込みのこと
  • INTとPCINTという2種類があって、以下の特徴に分けられる

INTピン(+を押して下さい)

PCINTピン(+を押して下さい)


どうやったら使えるようになるの

INTの場合(+を押して下さい:若干長いので注意)

PCINTの場合(+を押して下さい)

  • 割り込み処理ハンドラのところに以下のように書く()
    • INTの場合:ISR(INT☆_vect){処理}
    • PCINTの場合:ISR(PCINT_vect){処理} //0〜7の、どのPCINTピンが割り込みになってもココに飛びます

回路の追加

  • PCINTピン動作の確認のため、以下のスイッチを今回追加しました

それを踏まえて若干ヘッダファイルの内容を変更しました(+を押して内容をコピペして下さい)


プログラム概要

  • INT0ピンを赤スイッチに設定
    • INT0ピンに割り込みがかかったら赤LED点灯
  • INT1ピンを緑スイッチに設定
    • INT1ピンに割り込みがかかったら緑LED点灯
  • PCINT0を黄スイッチに、PCINT1を青スイッチに設定
    • PCINTピンに割り込みがかかったら黄・青LED同時点灯
  • 何も押されてなかったらmain文に戻って全LED消灯

プログラム(+を押して下さい)


動作確認(動画)

INTピンがLowレベルの場合(+を押して下さい)

INTピンが論理変化(両端)の場合(+を押して下さい)

INTピンが下降端の場合(+を押して下さい)

INTピンが上昇端の場合(+を押して下さい)

PCINTピンの動き(+を押して下さい)

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます