3: 2011-07-11 (月) 12:21:10 yoshida ソース 現: 2011-07-12 (火) 12:56:11 yoshida ソース
Line 42: Line 42:
そこでUSBケーブルを抜き差ししないでブートローダのコマンドモードに入る方法を紹介します。~ そこでUSBケーブルを抜き差ししないでブートローダのコマンドモードに入る方法を紹介します。~
ブートローダのコマンドモードに入るのは簡単で、プログラムを終了するだけです。~ ブートローダのコマンドモードに入るのは簡単で、プログラムを終了するだけです。~
-#ref(gcc_edit_3.png,100%)+#html{{ 
 +<pre class="brush:c"> 
 +#include <fd.h> 
 +void main (void) { 
 +  uint8_t ReadData; 
 + 
 +  fd_SetBeepCondition (FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP); 
 +  fd_SetUVThreshold (7.4); 
 +  DX_ChangeBaudrate (1000000); 
 + 
 +  while (!fd_rx_buff () && !fd_GetPB ()) { 
 +   DX_ReadByteData (100, 27, &ReadData, 10, NULL); 
 +   fd_printf ("%3d\r", ReadData); 
 +   if (ReadData > 100) { 
 +     DX_WriteByteData (100, 40, 10, 10, NULL); 
 +     DX_WriteByteData (100, 41, 10, 10, NULL); 
 +   } 
 +   fd_Wait (10)
 +  } 
 +
 +
 +</pre> 
 +}}
[[while>FDIIICHAPTER1.4#o8733fa9]]文は()内の条件が成り立っている間は処理を繰り返しますので、while (true) で無限に処理を繰り返していましたが、プログラムを終了するため、条件を設定します。~ [[while>FDIIICHAPTER1.4#o8733fa9]]文は()内の条件が成り立っている間は処理を繰り返しますので、while (true) で無限に処理を繰り返していましたが、プログラムを終了するため、条件を設定します。~
-[[fd_rx_buff ()>FDIIILIB#c1552bcf]]はキーボードからの入力の有無を確認し、[[fd_GetPB ()>FDIIILIB#pfa91195]]はプッシュボタンの押下を検知します。~ +while文の条件を分解してみましょう。~ 
-それぞれの関数の前に[[!>FDIIICHAPTER1.4#seea64bd]](エクスクラメーションマーク)を付けていますので、これで戻値を反転しています。つまりwhileの条件はキーボードからの入力がなければ、プッシュボタンが押されていなければ、となります。~+#html{{ 
 +<pre class="brush:c"> 
 +  while (!fd_rx_buff ()) { 
 +</pre> 
 +}} 
 +[[fd_rx_buff ()>FDIIILIB#c1552bcf]]はキーボード入力のデータ数を取得します。~ 
 +fd_rx_buff関数の前に[[!>FDIIICHAPTER1.4#seea64bd]](エクスクラメーションマーク)を付けていますので、これで戻値を反転しています。つまり戻値が0の場合にwhile条件が成り立ちます。戻値が0ということはキーボード入力がないということなので、キーボード入力されるまでwhile文を繰り返すことになります。~ 
 +#html{{ 
 +<pre class="brush:c"> 
 +  while (!fd_GetPB ()) { 
 +</pre> 
 +}} 
 +[[fd_GetPB ()>FDIIILIB#pfa91195]]はプッシュボタンの押下を検知します。~ 
 +fd_GetPB関数の前にも[[!>FDIIICHAPTER1.4#seea64bd]](エクスクラメーションマーク)を付けて戻値を反転しています。つまりwhileの条件はプッシュボタンが押されていなければwhile文を繰り返すことになります。~
[[&&>FDIIICHAPTER1.4#seea64bd]]で連結されていますので、whileの条件はキーボードからの入力がなく、かつプッシュボタンも押されていない、となります。~ [[&&>FDIIICHAPTER1.4#seea64bd]]で連結されていますので、whileの条件はキーボードからの入力がなく、かつプッシュボタンも押されていない、となります。~
これはSIMPLE TERM上でキーボードからどのキーでも良いので入力するか、プッシュボタンを押すとプログラムが終了するということです。~ これはSIMPLE TERM上でキーボードからどのキーでも良いので入力するか、プッシュボタンを押すとプログラムが終了するということです。~


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom