アプリ版:「スタンプのみでお礼する」機能のリリースについて

ワンボードマイコンMP-Z80のプログラムを勉強しているのですが、
次の問題がわかりません。
(1)NHKの時報の様な音を出すプログラムを作成する。但し音の周波数は、440Hzの音が鳴ったり鳴らなかったりを0.5秒間隔で3回繰り返して880Hzで1秒間鳴らすプログラムを作成する。プログラムは8900H番地以降に作成すること。周波数の誤差は+-0.5以下に、時間の誤差は+-1ms以下にすること。
お願いします、だれか教えてください。

A 回答 (3件)

0.5秒をどうやって得るのでしょう?


どこかにタイマがあって取得できるのでしょうか?
それとも命令の実行時間から計算するのでしょうか?
0.5秒以内で鳴らす-止めるを行うのか、0.5秒ごとに鳴らす/止めるを交互に行うのか?

0.0秒目 鳴らす
0.5秒目 止める
1.0秒目 鳴らす
1.5秒目 止める
なのか、
0.0秒目 鳴らす-止める
0.5秒目 鳴らす-止める
1.0秒目 鳴らす-止める
なのか。

この回答への補足

0.5秒ごとに鳴らす、止めるを繰り返したいんですけどお願いします。教えてください。

補足日時:2008/11/28 17:12
    • good
    • 0

・0.5秒間隔


1ms以内に実行できるループを作成して、
ループ開始前に取得した時刻とループ中に取得した時刻を比較し、違いが0.5秒以上になったときにループを抜ける。
おそらくループ開始前に鳴る鳴らないのビットを操作しているので、
ループを抜けたタイミングでそのビットを反転させてあげればよい。
3回繰り返すのならばその数をカウントしておいて越えたらループを抜ける(というか鳴らないようにビットを操作する)ように。
IOアドレスの部分はZ80が分かれば問題ないかと思います。
    • good
    • 0

この問題のどの部分が分からないのかを詳しく提示してください。


Z80単体では音を出すことはできなかったと思ったので、何らか別の音を出すものを接続すると思うのですが、その仕様どおりにZ80を制御すれば音を出せるかと思います。

参考URL:http://ziddy.japan.zdnet.com/qa4508180.html?ans_ …

この回答への補足

0.5秒間隔にするところがわかりません。IO装置の制御でスピーカに接続するんですけど「8255A」を用いて、IOアドレスは23H:CWRを用いるんですけどお願いします。

補足日時:2008/11/27 14:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!