問題の感想
自動釣銭機の問題です。問題と解答は公式サイトに載っています→平成28年春
解答
- 設問1 (1)バッファ4段目までPCMデータを蓄積する時間
- 設問2 (1)(a)優先度の高いタスクが、WDTのカウント時間以上に連続して動作していることを検出するため
- 設問3 (1)e:オーバフロー
(2)(a)再生音が途切れる
(2)(b)3
(1)(b)メインタスク、PCMデータ受信タスク、音声出力タスク

タスクが動作していることを示すフラグを持たせた場合、スマートフォンの音楽再生中にタスクの待ち状態をチェックすべきタスクの内容を問われています。
音楽再生のデータフローが圧縮音楽ファイルから行う場合と、スマートフォンから行われる場合があり、図2のデータフローから必要なタスクを選択します。
DAC送信処理があるので、音声出力タスク。PCMデータ受信処理があるので、CPMデータ受信タスク。画面表示の情報の送信などを行っているから、メインタスク。
ということで回答は以下になります。
音楽再生のデータフローが圧縮音楽ファイルから行う場合と、スマートフォンから行われる場合があり、図2のデータフローから必要なタスクを選択します。
DAC送信処理があるので、音声出力タスク。PCMデータ受信処理があるので、CPMデータ受信タスク。画面表示の情報の送信などを行っているから、メインタスク。
ということで回答は以下になります。
(2)(b)b:1000サンプル
(2)(b)c:4段目
(2)(b)d:メインタスク
(2)(c)①再生経過時間
(2)(c)②圧縮音楽ファイル名
(1)f:アンダフロー
(1)g:23040

周波数差が0.01%の場合、5分間の音楽再生で発生する可能性がある差分のバッファサイズを問われています。
周波数差が0.01%なので、192kHzの場合19.2Hzが周波数差。1秒間に19.2回サンプリング分の誤差が発生。
5分間なので、60秒×5回=300秒 19.2回×300秒=5760回
量子化ビットが32ビットなので4バイトだから、5760回×4バイト=23040バイトになります。
周波数差が0.01%なので、192kHzの場合19.2Hzが周波数差。1秒間に19.2回サンプリング分の誤差が発生。
5分間なので、60秒×5回=300秒 19.2回×300秒=5760回
量子化ビットが32ビットなので4バイトだから、5760回×4バイト=23040バイトになります。

伸張タスクの処理時間を求めます。
1サイクルの時間が5.20マイクロ秒であり、1回の伸張処理は1000サイクル分の処理を行うので、1回の伸張処理の時間は5.20ミリ秒。
CPU占有率を50%以下にする場合、半分の性能しか出ないので、2.60ミリ秒。回答は以下になります。
1サイクルの時間が5.20マイクロ秒であり、1回の伸張処理は1000サイクル分の処理を行うので、1回の伸張処理の時間は5.20ミリ秒。
CPU占有率を50%以下にする場合、半分の性能しか出ないので、2.60ミリ秒。回答は以下になります。
0 件のコメント:
コメントを投稿