C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 84 を表示中)
■49635 / )  Re[4]: サンハヤト キースキャンボード MT−E503 出力設定
□投稿者/ tkana3 (65回)-(2010/05/11(Tue) 17:45:02)
てきとう さん

こんにちは。ありがとうございます。

> MT-E503の取説をぱっとみて思ったことです
> SWの選択にVP15,VP14を使用するのではないでしょうか?

使用しています。

> SW1の押下を検出したい場合、VP15に0,VP14に0を出力してVP10で検出する
> SW2の押下を検出したい場合、VP15に0,VP14に1を出力してVP10で検出する
> VP10 SW1,SW2,SW3,SW4の押下検出
> VP11 SW5,SW6,SW7,SW8の押下検出
> VP12 SW9,SW10,SW11,SW12の押下検出
> VP13 SW13,SW14,SW15,SW16の押下検出
>
> SWの選択はスキャン信号の値でおこなう

下記のソースでソースラインデバックをすると、SW1とSW2に対応したそれぞれのLED1LED2が点灯するのですが
ソースラインデバックではなく、実行するとLED1LED2が同時に点灯してしまいます。
waitが必要なのでしょうか?

ポートはh8/3694のポート5に以下のように接続されているものとします。
今回VP13-VP11は使用していません。

> VP(仮想)ポートのポート
> ↓           h8/3694ポート5のビット割当
> ↓               ↓
> VP16 アウトプットイネーブル  6b 
> VP15 スキャン信号ビット1   5b 
> VP14 スキャン信号ビット0  4b 
> VP13 LEDデコーダビット 3  3b 
> VP12 LEDデコードビット2  2b 
> VP11 LEDデコーダビット1  1b 
> VP10 LEDデコーダビット0  0b 

void main(void)
{
while(1)
{
volatile unsigned int sw = 0;
PDR5 = 0x00;  // > SW1の押下を検出したい場合、VP15に0,VP14に0を出力して
sw = PDR5;   // > VP10で検出する (スイッチの値検出)
if(sw == 0x01)
{
PDR8 = 0x02;  //LED1点灯
PDR8 = 0x00;  //LED1消灯
}
PDR5 = 0x10;  // > SW2の押下を検出したい場合、VP15に0,VP14に1を出力して
sw = PDR5;   // > VP10で検出する(スイッチの値検出)
if(sw == 0x11)
{
PDR8 = 0x04;  //LED2点灯
PDR8 = 0x00;  //LED2消灯
}
}
}

以上よろしくお願いします。
返信 編集キー/


管理者用

- Child Tree -