VS1053BでMIDIシンセサイザ ― 2009/08/26 14:01
MIDIデコーダ機能のあるVS1053Bを使ってMIDIシンセサイザーを作り始めました。とりあえず音を出すだけなら、マイコン(PIC24F)のUART出力をVS1053BのRX端子につなげばOKです。
プログラムはごく基本的なもので、whileループで約1秒ごとにピアノの”ド”の音が鳴るようになっています。
プログラムはごく基本的なもので、whileループで約1秒ごとにピアノの”ド”の音が鳴るようになっています。
#include
#include
_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF
& COE_OFF & ICS_PGx1& FWDTEN_OFF )
_CONFIG2( IESO_OFF & FNOSC_FRCPLL & FCKSM_CSDCMD & OSCIOFNC_ON & IOL1WAY_OFF & POSCMOD_NONE )
//********************
// INIT_DATA
//********************
void init_data(void){
}
//**************************
// MAIN
//**************************
int main(void){
int i,j;
CLKDIV = 0; // クロック1/1
/* 入出力ポート設定 */
AD1PCFG = 0xFFFE; // すべてデジタル(AN0をのぞく)
//TRISA = 0xffff; //portA pa1 output
TRISB = 0xfffe; //portB all input pb0 output
RPOR0bits.RP0R = 3; //UART1 TX to RP0
//UART1初期設定
U1BRG = 31;
U1MODE = 0b1000100000000000;
U1STA = 0b0000010000000000;
//init_data();
while(U1STAbits.UTXBF==1);
U1TXREG = 0xC0;
while(U1STAbits.UTXBF==1);
U1TXREG = 0x00;
/**************** メインループ **********/
while(1){
while(U1STAbits.UTXBF==1);
U1TXREG = 0x90;
while(U1STAbits.UTXBF==1);
U1TXREG = 0x3C;
while(U1STAbits.UTXBF==1);
U1TXREG = 0x40;
for(i=0;i<30000;i++){for(j=0;j<100;j++){}}
}
}
コメント
トラックバック
このエントリのトラックバックURL: http://gijishinpo.asablo.jp/blog/2009/08/26/4537618/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。