Задача считать данные с 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, если они есть, заново прописать настройки порта... Работает, но мне кажется, что что-то здесь не так...
|