作ったのがこちら
void setTone(unsigned int x ,unsigned char SQU){
switch(SQU){
case 0:
Output(0x00,Note[x] & 0xff);
Output(0x01,(Note[x] >>8) & 0x0f);
break;
case 1:
Output(0x02,Note[x] & 0xff);
Output(0x03,(Note[x] >>8) & 0x0f);
break;
case 2:
Output(0x04,Note[x] & 0xff);
Output(0x05,(Note[x] >>8) & 0x0f);
break;
}
}
この関数の最初の行にある変数xに数値を代入することで音を出します。例えばド(=262Hz)を出したいときは60と入力すればいい( `・ω・´ )ラ(=440Hz)なら69。ちなみにMIDIのノート番号と一緒にしてます。
ここでもう一つ変数SQUが出てきますがこれは音の割り振り。YMZ294は3音同時に出すことができます。SQUを0から2に設定することで3音を割り振りすることができます。
関数の使い方はこう
setTone(60,0);
これでAchにド(=262Hz)の高さの音をだすという命令になります。
さぁこのプログラムを組み込んで動かそう!と思った矢先、ハードウェア的な問題が、tiny2313に書き込もうと思ったら
プログラムのデータが大きすぎて書き込めないみたい(´・ω・`)
