您好,
我正在开发一个系统来对输入信号进行实时音频处理。 我使用的是MSP432启动板(显然)以及音频信号处理BoosterPack (BOOSTXL-音频)。
在初始测试中,我使用按钮完成了一个简单的录音回放系统,在录音时观察到了合理的质量,但回放质量很差。 对于播放,我使用SPI协议,编程如下
/*初始化eUSI_B设置以写入DAC */ void Audio_DAC_Setup(void){/* REST eUSI_B */ EUSCI_B0->CTLW0 |= EUSCI_B_CTLW0_SWRST; /* SET eUSSCI_B寄存器*/ EUSCI_B0->CTLW0 = EUSCI_B_CTLW0_SWRST |// 保持静止(冗余) EUSCI_B_CTLW0_SPI|// 主模式 EUSCI_B_CTLW0_SYNC 0_SCI_SCI_SCI_LWLWLWLWLWLW_MODE_0_0 ~SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCI_SCF_0和EUB0 SCI_SCI_SCI_SCF_SCF_SCF_SCF_SCF_SCF_SCF_SCF_SCF_SCF_SCB0 / EB0 EB0,EB0,EBUF_SCF_SCF_SCF_SCF_SCF_SCF_SCF_SCF_SCF_SCF_SCB0,EB0 1 /*将值写入DAC */ void Audio_Write_DAC (uint16_t data){/* 引入同步引脚以启用DAC8311 */ SYNC_PORT->OUT ==~SYNC_PIN; /*裁剪DAC8311的两位数据处于“正常模式”*/ 数据&=~0xC000; /*等待就绪*/IFG_SCIF0; E_B-! /*将MSB写入传输寄存器*/ EUSCI_B0->TXBUF =(uint8_t)(data >>8); /*等待传输完成*/ while (!(EUSSCI_B0->IFG & EUSCI_B_IFG_TXIFG)); /*将LSB写入传输寄存器*/ EUTSCI_B0- 完成传输(ESI_STW_STW)= ATW_8 /*通过DAC8311使同步引脚高到结束SPI */ SYNC_PORT->OUT |= SYNC_PIN; }
第一个函数在主例程中被调用一次,第二个函数在ISR中被用作计时器。 我处理这个问题的方式是否有明显的问题?
谢谢你