平成23年特別 午後 問7 設問2(2) Cについて
広告
にくまんさん
(No.1)
初めまして。
春の試験で不合格になり、秋の合格に向けて勉強中です。
春の午後試験を復習していたのですが、表題の問題の解答が
納得できなかったので、教えてください。
解答例では
C:13-i
となっていますが、
iはLEDを示すカウンタとのことですので、
8+i
ではないでしょうか?
LED0⇒i=0
LED1⇒i=1
だと思うので、
13-i
の場合は、LED0とLED5が入れ替わってしまうと思います。
春の試験で不合格になり、秋の合格に向けて勉強中です。
春の午後試験を復習していたのですが、表題の問題の解答が
納得できなかったので、教えてください。
解答例では
C:13-i
となっていますが、
iはLEDを示すカウンタとのことですので、
8+i
ではないでしょうか?
LED0⇒i=0
LED1⇒i=1
だと思うので、
13-i
の場合は、LED0とLED5が入れ替わってしまうと思います。
2011.08.28 14:33
店員さん
(No.2)
LEDの表示順序だけを考えると、どちらでもよいような気がします。
SWが上位ビットに割りついているので、上位ビットからのほうが仕様としてきれいな気がします。
何か見逃しているかもしれませんが。
私はわかりませんが、ファームがわかる人なら良い解答ができると思います。
SWが上位ビットに割りついているので、上位ビットからのほうが仕様としてきれいな気がします。
何か見逃しているかもしれませんが。
私はわかりませんが、ファームがわかる人なら良い解答ができると思います。
2011.08.30 22:05
管理人
(No.3)
先ほど問題を見てみました。
問題文の
「読み込んだ時刻データが2011年4月17日,12時34分56秒ならばDate[0]~Date[5]に1,1,0,4,1,7が,Time[0]~Time[5]に1,2,3,4,5,6が格納される」
と、
[c]の少し手前の work←Date[i]または work←Time[i]
の部分に着目してみてください。
PIO_Dは下位ビットから上位ビットに向かってLED0,LED1,…,LED5となっていますが、配列Time及び配列Dateは、逆に配列の添え字が小さいほうからLED5,LED4,…,LED0となってます。
配列の添え字iが1であればPIO_DのD12を1に、配列の添え字iが2であればPIO_DのD11を1に、というようにしたいので、これをiを用いて表すと解答例である 「13-i」になるのではないでしょうか。
[c]の部分をにくまんさんがご指摘している「8+i」とすると、Time[0]がLED0,Time[1]がLED1というようになるので、表示順序が反対(12時34分56秒が、65 43 21 と出力される)になってしまうように思います。
問題文の
「読み込んだ時刻データが2011年4月17日,12時34分56秒ならばDate[0]~Date[5]に1,1,0,4,1,7が,Time[0]~Time[5]に1,2,3,4,5,6が格納される」
と、
[c]の少し手前の work←Date[i]または work←Time[i]
の部分に着目してみてください。
PIO_Dは下位ビットから上位ビットに向かってLED0,LED1,…,LED5となっていますが、配列Time及び配列Dateは、逆に配列の添え字が小さいほうからLED5,LED4,…,LED0となってます。
配列の添え字iが1であればPIO_DのD12を1に、配列の添え字iが2であればPIO_DのD11を1に、というようにしたいので、これをiを用いて表すと解答例である 「13-i」になるのではないでしょうか。
[c]の部分をにくまんさんがご指摘している「8+i」とすると、Time[0]がLED0,Time[1]がLED1というようになるので、表示順序が反対(12時34分56秒が、65 43 21 と出力される)になってしまうように思います。
2011.08.30 23:01
にくまんさん
(No.4)
ミルキー@管理人さん
店員さん
レスありがとうございます。
ミルキー@管理人さんのご指摘いただいた内容で氷解しました。
確かにDate[]、Time[]の配列と各桁の割り当てを確認すると、
例から12時34分56秒なら
Time[0]←1
Time[1]←2
Time[2]←3
Time[3]←4
Time[4]←5
Time[5]←6
ということですね。
そしてP34の[ダイナミック点灯方式]の(3)には
「LED3に4を表示させるためには、PIO_Dに16進数 0866 を書き込む」
と書いてあり、これは図4を見ると
LED5-D13
LED4-D12
LED3-D11
LED2-D10
LED1-D9
LED0-D8
という対応になっていることを説明していると思います。
ということはi=0のときには
Time[0]←1 ⇒ LED5-D13
という対応になっているんですね。
Time[]配列にどういう順番で値が格納されるか、という点の考慮が漏れていました。
注意して勉強を進めていこうと思います。
ありがとうございました。
店員さん
レスありがとうございます。
ミルキー@管理人さんのご指摘いただいた内容で氷解しました。
確かにDate[]、Time[]の配列と各桁の割り当てを確認すると、
例から12時34分56秒なら
Time[0]←1
Time[1]←2
Time[2]←3
Time[3]←4
Time[4]←5
Time[5]←6
ということですね。
そしてP34の[ダイナミック点灯方式]の(3)には
「LED3に4を表示させるためには、PIO_Dに16進数 0866 を書き込む」
と書いてあり、これは図4を見ると
LED5-D13
LED4-D12
LED3-D11
LED2-D10
LED1-D9
LED0-D8
という対応になっていることを説明していると思います。
ということはi=0のときには
Time[0]←1 ⇒ LED5-D13
という対応になっているんですね。
Time[]配列にどういう順番で値が格納されるか、という点の考慮が漏れていました。
注意して勉強を進めていこうと思います。
ありがとうございました。
2011.08.30 23:53
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。