### 第4部　PWM音源編

ビジュアルメモリは、内蔵しているタイマー（タイマー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）」を参照してください。

####

15-1-1　タイマー1ブロック構成

ビジュアルメモリの音声出力に使用するタイマー1は、次のようなブロック構成になっています。

##### ■タイマー1下位（T1L）　……　(1)

サイクルクロックまたはサイクルクロックの1/2周期の信号をクロックとする8ビットリロードタイマーです。

T1LのオーバーフローでT1LRのデータがリロードされ、T1LRUN（T1CNTのビット6）を‘0’の設定時、T1LRのデータがT1Lに転送されます。

##### ■タイマー1下位比較回路（T1LC）　……　(2)

8ビットのタイマー1下位比較データレジスタ（T1LC）と8ビットデータ比較回路で構成され、T1LとT1LCのデータを比較します。

##### ■タイマー1上位（T1H）　……　(3)

サイクルクロックまたはT1Lのオーバーフローをクロックとする8ビットリロードタイマーです。

T1HのオーバーフローでT1HRのデータがリロードされます。T1HRUN（T1CNTのビット7）をリセットしてもT1HRがリロードされます。

##### ■タイマー1上位比較回路（T1HC）　……　(4)

8ビットのタイマー1上位比較データレジスタ（T1HC）と8ビットデータ比較回路で構成され、T1HとT1HCのデータを比較します。

##### ■タイマー1制御レジスタ（T1CNT）　……　(5)

タイマー1の各モード設定や割り込み制御を行います。

▽ タイマー1ブロック図(図96)

####

15-1-2　関連レジスタ

タイマー1を制御するためには、次のレジスタを操作する必要があります。

シンボル | アドレス | 機能
T1L | 11BH | タイマー1下位カウンタレジスタ
T1LR | 11BH | タイマー1下位リロードレジスタ
T1LC | 11AH | タイマー1下位比較データレジスタ
T1CNT | 118H | タイマー1制御レジスタ
P1 | 114H | ポート1ラッチレジスタ
P1DDR | 145H | ポート1データディレクションレジスタ
P1FCR | 146H | ポート1制御レジスタ
OCR | 10EH | 発振制御レジスタ

上記レジスタの詳細は「ハードウェア編」を参照してください。

####

15-1-3　モード設定

タイマー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] | [→]