※御注意下さい:私はアセンブラの入門書を齧っただけで、C言語プログラミングは無勉強のまま記事を書いています。つきまして内容が全然間違っている可能性が謙遜では無く本当にあり、記事の内容は、プログラムの説明では無く、あくまでも初心者である私がどこが分からなかったかをメインとして書いています。参考にされる場合はあくまで内容が間違っているものとした上で自己責任において参考にして下さい。
TRON:基礎から学ぶ組込みμT-Kernelプログラミング リスト1-2で分からなかったところの備忘録
(間違っている所がありましたらコメントにて教えて頂ければ助かります。)
P105 リスト1-2 ボタン・スイッチ制御プログラム
分からなかった点:
1<<13 → 2進で表すと..0010000000000000(実際は32ビット)
&の記号 → 論理和を取る
1<<13の論理和で13番目以外の値が0になる理由
論理和とは
直列回路のスイッチのイメージ
0と0で0 0と1で0 1と0で0 1と1で1
つまり0との論理和の場合は結果は全て0になる。
(直列回路で1箇所でもスイッチがOFFの箇所があれば通電しないから)
sw_data == 0 が13番目のビットを指定していなくて良いのか?
13番目以外は0なので13番目が0になるとsw_dateの各ビットが..00000000000となり、sw_date自体の値が0になる事を応用している。