###前提・実現したいこと
C言語初心者です。ボタンを押すとLEDが点灯、もう一度押すと消灯というプログラムを作りたいです。
似たような質問もいくつかあり、その回答も参考にして考えましたがよくわからなくなりました。
よくある質問だと思いますがよろしくお願いします。
###発生している問題・エラーメッセージ
現在のプログラムだとボタンを押している間は点灯、離すと消灯、離しても点灯することがあります。
###ソースコード
#define SW_OFF 0
#define SW_ON 1
unsigned char getSW(void); //スイッチ読込関数の宣言
void LED_CTR(void); //LED制御関数の宣言
void LED(unsigned char number); //LED点灯関数の宣言
void main(void)
{
while(1){
LED_CTR(); //LED制御
}
}
void LED_CTR() //LED制御関数
{
static int sw = 0;
unsigned char a; //スイッチ入力の格納変数の宣言
a = getSW(); //スイッチ入力の読み込み
if(a == 1) { //スイッチ入力の判別
++sw;
sw &=1;
LED(sw);
}
}
unsigned char getSW(void) //スイッチ読込関数
{
unsigned char flag = 0;
if(P1.0 == SW_ON) //P1.0はスイッチポート
{
flag = 1;
}
return flag;
}
void LED(unsigned char number) //LED点灯関数
{
if(number == 1)
{
P2.1 = 1; //P2.1はLEDポート
}else{
P2.1 = 0;
}
}
###補足情報(言語/FW/ツール等のバージョンなど)
c言語

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/12 11:35
2015/11/18 00:21