void AUDIO_REC_SPI_IRQHANDLER(void)
{
uint16_t app;
/* Check if data are available in SPI Data register */
if (SPI_GetITStatus(SPI2, SPI_I2S_IT_RXNE) != RESET)
{
app = SPI_I2S_ReceiveData(SPI2);
InternalBuffer[InternalBufferSize++] = HTONS(app);
/* Check to prevent overflow condition */
if (InternalBufferSize >= INTERNAL_BUFF_SIZE)
{
PDM_Filter_64_LSB((uint8_t *)InternalBuffer, PCM_BUF, 64 , (PDMFilter_InitStruct *)&Filter);
PCM_FLAG = 1;
WaveCounter += 16;
InternalBufferSize = 0;
if( WaveCounter > 480000)
{
REC_FLAG = 0;
}
}
}
}
while( REC_FLAG )
{
if(PCM_FLAG)
{
for( PCM_i = 0; PCM_i < 16; PCM_i ++)
{
FLASH_ProgramHalfWord (Address, PCM_BUF[PCM_i]);
Address = Address + 2;
// if (FLASH_ProgramHalfWord (Address, PCM_BUF[PCM_i]) == FLASH_COMPLETE)
// Address = Address + 2;
// else
// {
// while(1)
// GPIO_SetBits (GPIOD, GPIO_Pin_13);
// }
}
PCM_FLAG=0;
}
}