2: 2011-07-04 (月) 17:29:24 yoshida |
3: 2011-07-05 (火) 12:08:36 yoshida |
| **処理の流れを図にする [#e944ad29] | | **処理の流れを図にする [#e944ad29] |
| Chapter2と同様に処理の流れを図にしましょう。 | | Chapter2と同様に処理の流れを図にしましょう。 |
- | #ref(flow.png,100%) | + | #ref(flow_1.png,100%) |
| Chapter2との違いはブザーを鳴らす代わりに、センサ値が閾値以上ならバーを開け、閾値以下ならバーを閉じるという所です。人が来てバーが開いた後、直ぐ閉じてしまうと困るので少しの間待機させます。 | | Chapter2との違いはブザーを鳴らす代わりに、センサ値が閾値以上ならバーを開け、閾値以下ならバーを閉じるという所です。人が来てバーが開いた後、直ぐ閉じてしまうと困るので少しの間待機させます。 |
| | | |
| プログラムに反映すると以下のようになります。 | | プログラムに反映すると以下のようになります。 |
| #ref(gcc_edit_5.png,100%) | | #ref(gcc_edit_5.png,100%) |
| + | |
| + | **再び動作確認 [#lc2b2cb7] |
| + | #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); |
| + | |
| + | fd_DXSetTorqueLimit (1, 154); |
| + | |
| + | while (!fd_rx_buff () && !fd_GetPB ()) { |
| + | DX_ReadByteData (100, 27, &ReadData, 10, NULL); |
| + | fd_printf ("%3d\r", ReadData); |
| + | if (ReadData > 100) { |
| + | fd_DXSetPosition (1, 300); |
| + | fd_Wait (2000); |
| + | } else { |
| + | fd_DXSetPosition (1, 512); |
| + | } |
| + | fd_Wait (10); |
| + | } |
| + | } |
| + | </pre> |
| + | }} |
| + | 修正が完成しました。再びFDIII-HCにプログラムを書き込んで動かしてみましょう。~ |
| + | 如何でしょうか?~ |
| + | バーを開いた後の待機時間が2秒では短いと感じませんか?~ |
| + | もし短かったら、fd_Waitの引数を増やして再び書き込んで試してみて下さい。 |
| + | |
| + | このように、ある程度プログラムが作成できたら動作確認と修正を繰り返します。そうすることで納得できるプログラムの完成となるわけです。 |
| + | |
| + | [[次のチャプターへ>FDIIICHAPTER3.4]]~ |
| + | |
| + | [[FDIII-HC Learning Guide]]へ戻る |