您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机dsPIC芯片的DC1模块功能和音频编解码芯片SI3000的使用 正文
dsPIC芯片的DC1模块功能和音频编解码芯片SI3000的使用

dsPIC芯片的DC1模块功能和音频编解码芯片SI3000的使用

点击数:7816 次   录入时间:03-04 11:49:30   整理:http://www.55dianzi.com   PIC单片机
 RxQHead = 0;
 CmdStage = CMD_STAGE0;
 CodecCmd = 0;
 ClkAdjTrig = 0;
 TRISFbits.TRISF6 = 1; //编码解码器(Codec)引脚为输入
    IFS2bits.DCIIF = 0;
    IEC2bits.DCIIE=1;
    IPC10bits.DCIIP=7;
 
    DCICON1=0X8040;         // 配置DCI模块用于传送16位数据且工作在多通道模式
    DCICON2=0XFFFF;
    DCICON3=( CLOCK_FREQ / ( 2 * FRAMECLKRATE) ) - 1;
    TSCON=1;
    RSCON=1;
 LATFbits.LATF6 = 0; //复位编码解码器
 TRISFbits.TRISF6 = 0;
 TimeDelay(200);
 TRISFbits.TRISF6 = 1; //编码解码器设为输入
 TimeDelay(1);

 WriteCodecCtrl( 3, 0);  //SI3000寄存器3
 WriteCodecCtrl( 4, 19);     //SI3000寄存器4
    WriteCodecCtrl( 1,0X18 );   //SI3000寄存器1
 WriteCodecCtrl( 2, 0);     //SI3000寄存器2
    WriteCodecCtrl( 5, 2);      //SI3000寄存器5
    WriteCodecCtrl( 6, 0X5E );  //SI3000寄存器6
    WriteCodecCtrl( 7, 0X5F );  //SI3000寄存器7
    WriteCodecCtrl( 9, 0);      //SI3000寄存器9
}

//*************写命令到编码解码器子程序**********************
void WriteCodecCtrl( unsigned char adr, unsigned char parm )
{
 CodecCmd = (unsigned int)adr;
 CodecCmd = (CodecCmd<<8) & 0x1F00;     //SI3000寄存器的5位地址
 CodecCmd += (unsigned int)parm;        //待写入的数据
 CmdStage = CMD_STAGE1;
 while( CmdStage != CMD_STAGE0 ){} 
}

//*************从编码解码器读命令子程序**********************
unsigned char ReadCodecCtrl( unsigned char adr )
{
 CodecCmd = (unsigned int)adr;
 CodecCmd = (CodecCmd<<8) & 0x1F00;
 CodecCmd |=  0x2000;                  //读功能
 CmdStage = CMD_STAGE1;
 while( CmdStage != CMD_STAGE0 ){} 
 return CodecCmd&0x00FF;
}

//**********************主函数*******************************
int main(void)
{
    TRISG=0X1000;
 InitCodec();
    while(1);
}


上一页  [1] [2] 


本文关键字:暂无联系方式PIC单片机单片机-工控设备 - PIC单片机