Инициализацию я провожу как в примере:
CODE
SD_Init();
//----------------------Init_SD--------------------//
if (Status == SD_OK)
{
Status = SD_GetCardInfo(&SDCardInfo);//
printf("\r\n SD_GetCardInfo:");
}
if (Status == SD_OK)
{
Status = SD_SelectDeselect((uint32_t) (SDCardInfo.RCA << 16));
printf("\r\n\n SD_SelectDeselect");
}
if (Status == SD_OK)
{
Status = SD_EnableWideBusOperation(SDIO_BusWide_4b);
printf("\r\n EnableWideBusOperation");
}
if (Status == SD_OK)
{
Status = SD_SetDeviceMode(SD_DMA_MODE);
printf("\r\n Set Transfer Mode");
}
ОТладчик (использую ИАР) валиться на SD_SelectDeselect возвращает ошибку таймаута. Я установил что виновато в этом прерывание.
CODE
void SDIO_IRQHandler(void)
{
SD_ProcessIRQSrc();
}
Оно объявленов в NVIC - прерывание у меня одно в файле it оно объявлено. И оно не вызывается вообще не проходит.
Я попробовал все варианты - менял карточки, предполагал что какие то выводы таймеров "гадят"- нет.
Помогите пожалуйста, я понимаю что вопрос избитый но почему именно это прерывание не вызывается....
С уважением.