マイクロマウス研修 プログラミング6


社長ゆきさんにも笑ってもらった「どこにコードを書いてコピペすればいいんですか」事件。

やはり文系の悲しい性。
いざ、宿題のコードを書くところからやろうとしても、机の上のモノを整理してみたり
急ぎではないパソコン上のフォルダやファイルの整理をしてみたり。
まさに夏休みの宿題を後回しにする子供です。

宿題とは何だったか復習してみますと。
アオキ師匠作のプログラム「スイッチを押すとLEDが光る」に、
私が「スイッチを押すとブザーが鳴る」コードを書き加えるという内容でした。

「ブザーを鳴らす」は以前やったので、その時のコードを加えればいいですね。

「どこに」書き加えるか。それが問題だ。(`・ω・´)キリッ

まずは以下「スイッチを押すとLEDが光る」プログラムがあります。
文系の我が友人読者様、この辺すっ飛ばして読んで下さいね。


	while(1)	//無限ループ
	{
		while(SW_R & SW_C & SW_L);	//何れかのスイッチが押されるまで待つ
		
		if(SW_R == 0)			//右スイッチが押されていた時
		{
			state_r++;			//状態を示す変数を更新	
			if(state_r > 1)	state_r = 0;	//状態を示す変数が0か1になるようにする
			
			if(state_r == 0)		//変数によってLEDを点灯/消灯させる
			{
				LED3 = 0;
			}else{
				LED3 = 1;
			}
		
		}

このコードの下に、以下コードを書き加えました。
コピペして12行目から18行目を書き加えました。

	while(1)	//無限ループ
	{
		while(SW_R & SW_C & SW_L);	//何れかのスイッチが押されるまで待つ
		
		if(SW_R == 0)			//右スイッチが押されていた時
		{
			state_r++;			//状態を示す変数を更新	
			if(state_r > 1)	state_r = 0;	//状態を示す変数が0か1になるようにする
			
			if(state_r==0)
			{
				BUZZER=1;
				
			for(i=0;i<0x3000;i++);
			}else{
				
			        BUZZER=0;
			for(i=0;i 1)	state_c = 0;	//状態を示す変数が0か1になるようにする	
			
		}

そしてこのプログラムをビルドします。
(このコードをコンピュータが実際に動かせるようポチッと押して機械語に翻訳してもらう)
間違いがあるとエラーが出て来るのですが、出てきたエラーは予想外に1つだけ。
そしてそれらを修正することをデバックというのでした。
エラー内容は最後に } が足りない、というだったので、
適当に付け足してもう一度、ビルド。

そして完了したので、このプログラムを我らがミニーちゃんに転送します。
転送も無事完了!なんか幸先いい感じ。

プログラム通りミニーちゃんは「ボタンを押してブザーが鳴る」ようになったのでしょうか?

ドキドキしながらボタンを押すと・・・無音。
素晴らしい程の静寂です。
ボタンを押すとLEDが付いたり消えたりします。追加前の本プログラムは健在。

きっと後ろの席にいるアオキ師匠は私が
「ブザーを鳴らそうとしていた」ことすら気づいていないでしょう。
長くなってしまったので、この辺で一度切ります。

次回はなぜブザーが鳴らなかったのか。アオキ師匠に聞いて直してみます。


Posted in 研修