VS1053BでMIDIシンセサイザ2009/08/26 14:01

回路図
MIDIデコーダ機能のあるVS1053Bを使ってMIDIシンセサイザーを作り始めました。とりあえず音を出すだけなら、マイコン(PIC24F)のUART出力をVS1053BのRX端子につなげばOKです。
プログラムはごく基本的なもので、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の入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://gijishinpo.asablo.jp/blog/2009/08/26/4537618/tb