はじめまして、ワタナベと申します。
> P8-3にスイッチがあるのですが、そのスイッチの立ち下がりで次の動作に移りたいと
> 思っています。以下のように書いているのですがうまく動きません・・・。
> 良きアドバイスをお願いいたします。
> P8-3はプルアップされていてスイッチが押されると"LOW"になるようになっていま
> す。
スイッチの変化を見るには xor(^) を使うと便利です。
/* 初期化.*/
char old_sw = 0x00; /* 前回の状態.*/
char now_sw = 0x00; /* 現在の状態. 0=OFF,1=ON */
char push_sw; /* 0→1に変化した(押された) sw */
char pull_sw; /* 1→0に変化した(離された) sw */
以下、繰り返します。
/* 読取り.*/
old_sw = now_sw; /* 前回のデータを控えます.*/
now_sw = ~(*P8DR); /* 分り易いように 0と1を反転させときます.*/
/* 状態変化感知.*/
push_sw = (old_sw ^ now_sw) & now_sw;
pull_sw = (old_sw ^ now_sw) & old_sw;
以上です。