ビジュアルメモリは、内蔵しているタイマー(タイマー1)を用いて音声を出力することができます。音声出力方式には、8ビットパルスジェネレータ方式とビット長可変パルスジェネレータ方式(ビット長:9〜16ビット)の2とおりの方式があり、どちらの場合についても、タイマー1回路を用いて音声出力を行います。通常、8ビットパルスジェネレータ方式を使用します。
なおPWM音源を利用する場合は、水晶発振に変更してください。
第15章 音声出力の方法 |
ここでは、ビジュアルメモリの音声出力方法について説明します。
ビジュアルメモリの音声出力には、タイマー1を使用します。
15-1 タイマー1概要 |
ビジュアルメモリの音声出力に使用するタイマー1について説明します。
ビジュアルメモリが内蔵しているタイマー1は、次の4つの機能を持った16ビットタイマーです。
モード0:8ビットリロードタイマー×2チャンネル
モード1:8ビットリロードタイマー+8ビットパルスジェネレータ
モード2:16ビットリロードタイマー
モード3:ビット長可変パルスジェネレータ(9〜16ビット)
これらの機能のうち、ビジュアルメモリ音声出力に使用するモードは、モード1です。
他のモードの使用方法については「ハードウェア編」の「4.3 タイマー1(T1)」を参照してください。
ビジュアルメモリの音声出力に使用するタイマー1は、次のようなブロック構成になっています。
サイクルクロックまたはサイクルクロックの1/2周期の信号をクロックとする8ビットリロードタイマーです。
T1LのオーバーフローでT1LRのデータがリロードされ、T1LRUN(T1CNTのビット6)を‘0’の設定時、T1LRのデータがT1Lに転送されます。
8ビットのタイマー1下位比較データレジスタ(T1LC)と8ビットデータ比較回路で構成され、T1LとT1LCのデータを比較します。
サイクルクロックまたはT1Lのオーバーフローをクロックとする8ビットリロードタイマーです。
T1HのオーバーフローでT1HRのデータがリロードされます。T1HRUN(T1CNTのビット7)をリセットしてもT1HRがリロードされます。
8ビットのタイマー1上位比較データレジスタ(T1HC)と8ビットデータ比較回路で構成され、T1HとT1HCのデータを比較します。
タイマー1の各モード設定や割り込み制御を行います。
タイマー1を制御するためには、次のレジスタを操作する必要があります。
シンボル | アドレス | 機能 |
T1L | 11BH | タイマー1下位カウンタレジスタ |
T1LR | 11BH | タイマー1下位リロードレジスタ |
T1LC | 11AH | タイマー1下位比較データレジスタ |
T1CNT | 118H | タイマー1制御レジスタ |
P1 | 114H | ポート1ラッチレジスタ |
P1DDR | 145H | ポート1データディレクションレジスタ |
P1FCR | 146H | ポート1制御レジスタ |
OCR | 10EH | 発振制御レジスタ |
上記レジスタの詳細は「ハードウェア編」を参照してください。
タイマー1を音声出力のためのモード(モード1)に設定する方法を説明します。
モード設定に必要なレジスタは、以下の4つです。
T1CNT(ビット5:T1LONG)
P1(ビット7:P17)
P1DDR(ビット7:P17DDR)
P1FCR(ビット7:P17FCR)
各モードとレジスタの値は、下図のとおりです。各モードで使用できるサイクルクロックの周期も併せて示します。
モード | クロック周期 | T1LONG | P17FCR | P17DDR | P17 |
1 | Tcyc | 0 | 1 | 1 | 0 |
表中のTcycはサイクルクロックの周期です。
ビジュアルメモリで音声を出力する時には、必ずシステムクロックを水晶発振に設定してください。
システムクロックを水晶発振以外に設定した場合、正常に音声が出力されない場合がありますので、使用しないでください。
サイクルクロックは次の様になります。
システムクロック32.768KHz(Tcyc=183.105μs)
システムクロックの設定方法については「ハードウェア編」を参照してください。
![]() 他のクロックを使用した場合の弊害について システムクロックをRC発振にして音声出力を行うと、RC発振回路の誤差が、音声出力周波数にも影響します。 音声出力には、水晶発振を利用してください。 |
[←] | [INDEX] | [→] |
(C)SEGA ENTERPRISES, LTD., 1999