プログラム(制御)no
Posted: 2009年10月27日(火) 19:19
本日制御技術で、
③スイッチの入力によりLEDの点灯パターンが以下のように変わるプログラムを考えよ。
--------------------------------------------------------------------
|スイッチ(SW)|状態|その他|動作 |
--------------------------------------------------------------------
| SW1 | on | off |すべてのLEDが点滅(約1秒) |
--------------------------------------------------------------------
| SW2 | on | off |1つおきにLEDが交互に点灯(約1秒間隔) |
--------------------------------------------------------------------
| SW3 | on | off |右4bitと左4bitが交互に点灯(約1秒間隔) |
--------------------------------------------------------------------
| SW4 | on | off |右から1個ずつ点灯(for文使用) |
--------------------------------------------------------------------
| SW5 | on | off |右から1個ずつ点灯が増える(for文使用) |
--------------------------------------------------------------------
| SW6 | on | off |左から1個ずつ点灯(for文使用) |
--------------------------------------------------------------------
| SW7 | on | off |左から1個ずつ点灯が増える(for文使用) |
--------------------------------------------------------------------
| SW8 | on | off |右から1個ずつ増えた後、左から1個ずつ減る |
--------------------------------------------------------------------
↑という問題が宿題として出されました。
/* メインプログラム */
void main(void)
{
unsignede char d;
init(); /*初期化 */
while(1){
d = P7DR
PBDR = d;
switch(d){
case 1:
PBDR = 0xff;
timer(1000);
break;
case 2:
PBDR = 0x55;
timer(1000);
PBDR = 0xaa;
timer(1000);
break;
case 3:
PBDR = 0xf0;
timer(1000);
PBDR = 0x0f;
timer(1000);
break;
case 4:
for ()
PBDR = 0x01
とここまでなんですが,実はcase 4:の方も曖昧で手も足も出ず解りません。
case 3:以降の答えが知りたいです。
言い方が失礼かもしれませんが,case 3:以降の答えはどのようになるんでしょうか?
③スイッチの入力によりLEDの点灯パターンが以下のように変わるプログラムを考えよ。
--------------------------------------------------------------------
|スイッチ(SW)|状態|その他|動作 |
--------------------------------------------------------------------
| SW1 | on | off |すべてのLEDが点滅(約1秒) |
--------------------------------------------------------------------
| SW2 | on | off |1つおきにLEDが交互に点灯(約1秒間隔) |
--------------------------------------------------------------------
| SW3 | on | off |右4bitと左4bitが交互に点灯(約1秒間隔) |
--------------------------------------------------------------------
| SW4 | on | off |右から1個ずつ点灯(for文使用) |
--------------------------------------------------------------------
| SW5 | on | off |右から1個ずつ点灯が増える(for文使用) |
--------------------------------------------------------------------
| SW6 | on | off |左から1個ずつ点灯(for文使用) |
--------------------------------------------------------------------
| SW7 | on | off |左から1個ずつ点灯が増える(for文使用) |
--------------------------------------------------------------------
| SW8 | on | off |右から1個ずつ増えた後、左から1個ずつ減る |
--------------------------------------------------------------------
↑という問題が宿題として出されました。
/* メインプログラム */
void main(void)
{
unsignede char d;
init(); /*初期化 */
while(1){
d = P7DR
PBDR = d;
switch(d){
case 1:
PBDR = 0xff;
timer(1000);
break;
case 2:
PBDR = 0x55;
timer(1000);
PBDR = 0xaa;
timer(1000);
break;
case 3:
PBDR = 0xf0;
timer(1000);
PBDR = 0x0f;
timer(1000);
break;
case 4:
for ()
PBDR = 0x01
とここまでなんですが,実はcase 4:の方も曖昧で手も足も出ず解りません。
case 3:以降の答えが知りたいです。
言い方が失礼かもしれませんが,case 3:以降の答えはどのようになるんでしょうか?