Mini210S 開発キット詳細URL
第X章 クエリモード・検出キー
第一節 回路図
Mini210Sには4つのユーザーキーがあります、下記はkey1回路図、残りの3つのボタンの回路図はKEY1を類似します:
キー回路図
“XEINT16/KP_COL0゛を検索、
キー・ピン図
第二節 プログラム説明
完全なコードは、ディレクトリ9.key_ledご参照ください。main.c中のコードを抜きました、他のコードは8.buzzerとほぼ同じです。
1. main.c
コアコードは:
// ポーリングモードでキーイベントを検索
while(1)
{
dat = GPH2DAT;
if(dat & (1<<0)) // KEY1 押され、 LED1点灯、or LED1 消し
GPJ2DAT |= 1<<0; // OFF
else
GPJ2DAT &= ~(1<<0); // ON
if(dat & (1<<1)) // KEY2押され、 LED2点灯、or LED2消し
GPJ2DAT |= 1<<1;
else
GPJ2DAT &= ~(1<<1);
if(dat & (1<<2)) // KEY3押され、LED3点灯、or LED3消し
GPJ2DAT |= (1<<2);
else
GPJ2DAT &= ~(1<<2);
if(dat & (1<<3)) // KEY4押され、LED4点灯、or LED4消し
GPJ2DAT |= 1<<3;
else
GPJ2DAT &= ~(1<<3);
}
プログラムは簡単で、まずGPJ2_0/1/2/3ピンを出力機能・GPH2_0/1/2/3ピンを入力機能と配置し、そしてポーリング検出方式でGPH2_0/1/2/3ピンの値を読み取って、そしてキーが押されたと検出された時、対応のピンをローレベルと変えて、対応するLEDが点灯します、そうではいと、LEDが消灯状態に留まります。
第三節 コードコンパイルとプログラミングの実行
コードをコンパイルし、Fedora端末で下記のコマンドを実行します:
# cd 9.key_led
# make
9.key_ledのディレクトリ下にkey_led.binを生成し、それを開発ボードにプログラムします。
第四節 実験現象
ボタンが押されていない、すべてのLEDが消灯状態を保てます。キーkey1を押すと、LED1が点灯し、キーkey1を離すと、LED1が消灯します。残りの3つのボタンも同じようになります。ポーリング検出方式ではCPU使用率が掛かり過ぎます、CPUが他の作業をできませんので、後の章では割り込み方式でキーの押し状態を検査します。
---続く