C言語H8 3664のプログラムです。 ①のところがエラー表示となってしまいます。 原因を教えてください。 また、付け

C言語H8 3664のプログラムです。 ①のところがエラー表示となってしまいます。  原因を教えてください。 また、付け

C言語H8 3664のプログラムです。 ①のところがエラー表示となってしまいます。 原因を教えてください。 また、付け足したほうがよいものをおしえてください。 特に条件文のところとポートの設定。 #include <3664.h> void msecwait(int msec) { int i,j; for (i=0;i<msec;i++) { for (j=0;j<1588;j++); } } void main() { if(IO.PDR2.BIT.B1==0) /*モードスイッチがONの時*/ { while(1) { IO.PDR5.BIT.B0 = 1; /*グラデーション設定*/ msecwait(100); IO.PDR5.BIT.B0 = 0; IO.PDR5.BIT.B1 = 1; msecwait(100); IO.PDR5.BIT.B1 = 0; IO.PDR5.BIT.B2 = 1; msecwait(100); IO.PDR5.BIT.B2 = 0; } } else(IO.PDR2.BIT.B1=1) { if(IO.PDRB.BIT.B0=0) /*スイッチ1がONの時*/ { IO.PDR2.BIT.B2 = 1; /*ブザー発音*/ IO.PDR5.BIT.B0 = 1; /*点灯*/ msecwait(2000); /*2000ms待機*/ IO.PDR5.BIT.50 = 0; /*消灯*/ msecwait(500); /*500ms待機*/ IO.PDR2.BIT.B2 = 0; /*ブザー電源OFF*/ } } else if(IO.PDRB.BIT.B1=0) /*スイッチ2がONの時*/ { IO.PDR2.BIT.B2 = 1; /*ブザー発音*/ IO.PDR8.BIT.B7 = 1; /*点灯*/ msecwait(2000); /*2000ms待機*/ IO.PDR8.BIT.B7 = 0; /*消灯*/ msecwait(500); /*500ms待機*/ IO.PDR2.BIT.B2 = 0; /*ブザー電源OFF*/ } else if(IO.PDRB.BIT.B2=0) /*スイッチ3がONの時*/ { IO.PDR2.BIT.B2 = 1; /*ブザー発音*/ IO.PDR8.BIT.B2 = 1; /*点灯*/ msecwait(2000); /*2000ms待機*/ IO.PDR8.BIT.B2 = 0; /*消灯*/ msecwait(500); /*500ms待機*/ IO.PDR2.BIT.B2 = 0; /*ブザー電源OFF*/ } else (IO.PDRB.BIT.B3=0) /*スイッチ4がONの時*/ { IO.PDR2.BIT.B2 = 1; /*ブザー発音*/ IO.PDR5.BIT.B0 = 1; /*点灯*/ msecwait(2000); /*2000ms待機*/ IO.PDR5.BIT.B0 = 0; /*消灯*/ msecwait(500); /*500ms待機*/ IO.PDR2.BIT.B2 = 0; /*ブザー電源OFF*/ } } 補足 ①はelse(IO.PDR2.BIT.B1=1) { if(IO.PDRB.BIT.B0=0) /*スイッチ1がONの時*/ {

/* ポートの初期化 */ void port_init(void) { ____// ここにポート初期化を書く } void main() { ____port_init();____// port initialize ____if(IO.PDR2.BIT.B1==0) /*モードスイッチがONの時*/ ____{ ________while(1) ________{ __________IO.PDR5.BIT.B0 = 1; /*グラデーション設定*/ __________msecwait(100); __________IO.PDR5.BIT.B0 = 0; __________IO.PDR5.BIT.B1 = 1; __________msecwait(100); __________IO.PDR5.BIT.B1 = 0; __________IO.PDR5.BIT.B2 = 1; __________msecwait(100); __________IO.PDR5.BIT.B2 = 0; ________} ____} いろいろ間違いがあるがそれについては他の回答者さんの回答を見てもらうとして、 上記のプログラムで気になったところ。 モードスイッチがオンのときグラデーション設定に入り永久に抜けませんがよいのでしょうか?マイコンの電源をオフし、オンしないかぎり。モードスイッチをオフにしてもダメです。 なんか間違い臭いのですが。

gt4に関する回答

【動画】車・バイクニュース

【動画だから100倍楽しめる】YouTube車・バイク動画(すべて見る)

見て楽しむニュース

【動画だから100倍楽しめる】見て楽しむ車・バイクニュース(すべて見る)

【速報】車・バイクニュース

完全無料で話題の車・バイクニュースがすぐに読める(すべて見る)

【話題】今話題の動画

SNSで1000いいね!以上の話題の動画(すべて見る)

この質問に答えてみる

C言語H8 3664のプログラムです。 ①のところがエラー表示となってしまいます。  原因を教えてください。 また、付け

C言語H8 3664のプログラムです。 ①のところがエラー表示となってしまいます。 原因を教えてください。 また、付け足したほうがよいものをおしえてください。 特に条件文のところとポートの設定。 #include <3664.h> void msecwait(int msec) { int i,j; for (i=0;i<msec;i++) { for (j=0;j<1588;j++); } } void main() { if(IO.PDR2.BIT.B1==0) /*モードスイッチがONの時*/ { while(1) { IO.PDR5.BIT.B0 = 1; /*グラデーション設定*/ msecwait(100); IO.PDR5.BIT.B0 = 0; IO.PDR5.BIT.B1 = 1; msecwait(100); IO.PDR5.BIT.B1 = 0; IO.PDR5.BIT.B2 = 1; msecwait(100); IO.PDR5.BIT.B2 = 0; } } else(IO.PDR2.BIT.B1=1) { if(IO.PDRB.BIT.B0=0) /*スイッチ1がONの時*/ { IO.PDR2.BIT.B2 = 1; /*ブザー発音*/ IO.PDR5.BIT.B0 = 1; /*点灯*/ msecwait(2000); /*2000ms待機*/ IO.PDR5.BIT.50 = 0; /*消灯*/ msecwait(500); /*500ms待機*/ IO.PDR2.BIT.B2 = 0; /*ブザー電源OFF*/ } } else if(IO.PDRB.BIT.B1=0) /*スイッチ2がONの時*/ { IO.PDR2.BIT.B2 = 1; /*ブザー発音*/ IO.PDR8.BIT.B7 = 1; /*点灯*/ msecwait(2000); /*2000ms待機*/ IO.PDR8.BIT.B7 = 0; /*消灯*/ msecwait(500); /*500ms待機*/ IO.PDR2.BIT.B2 = 0; /*ブザー電源OFF*/ } else if(IO.PDRB.BIT.B2=0) /*スイッチ3がONの時*/ { IO.PDR2.BIT.B2 = 1; /*ブザー発音*/ IO.PDR8.BIT.B2 = 1; /*点灯*/ msecwait(2000); /*2000ms待機*/ IO.PDR8.BIT.B2 = 0; /*消灯*/ msecwait(500); /*500ms待機*/ IO.PDR2.BIT.B2 = 0; /*ブザー電源OFF*/ } else (IO.PDRB.BIT.B3=0) /*スイッチ4がONの時*/ { IO.PDR2.BIT.B2 = 1; /*ブザー発音*/ IO.PDR5.BIT.B0 = 1; /*点灯*/ msecwait(2000); /*2000ms待機*/ IO.PDR5.BIT.B0 = 0; /*消灯*/ msecwait(500); /*500ms待機*/ IO.PDR2.BIT.B2 = 0; /*ブザー電源OFF*/ } } 補足 ①はelse(IO.PDR2.BIT.B1=1) { if(IO.PDRB.BIT.B0=0) /*スイッチ1がONの時*/ {

※未入力の場合「乗り物好き」として匿名で回答できます。

※未入力可能

全角10文字以上4000文字以内