Задача считать данные с 14-ти разрядного АЦП (AD 7357) от Аналог Девайс через Sport1? вот текст
// настройка SPORT1
*pSPORT1_RCLKDIV= 99;
ssync();
*pSPORT1_RFSDIV = 1000;
ssync();
*pSPORT1_RCR2= 0x0d;
ssync();
*pSPORT1_RCR1= RCKFE | RFSR | IRCLK | IRFS | LRFS | RSPEN;
Вот прерывание:
EX_INTERRUPT_HANDLER(SPORT1_RX_ISR)
{
if (*pSPORT1_STAT & 1)
{
rxf = *pSPORT1_RX;
rxt = *pSPORT1_RX;
}
В данном случае происходит переполнение FiFO, сейчас вариант немного другой:
// настройка SPORT1
*pSPORT1_RCLKDIV= 14;
ssync();
*pSPORT1_RFSDIV =6;
ssync();
*pSPORT1_RCR2= 0x10 | RXSE;
ssync();
*pSPORT1_RCR1= RCKFE | RFSR | IRCLK | IRFS | RSPEN;
Правда точно щас не скажу значение *pSPORT1_RFSDIV, потому что подбирал.... А проект на работе(( И в прерывание добавил цикл, проверки ROVF|RUVF, если они есть, заново прописать настройки порта... Работает, но мне кажется, что что-то здесь не так...