реклама на сайте
подробности

 
 
> BF537 - немогу заставить работать прерывание от SPORT1
zhilik
сообщение Jan 7 2008, 18:25
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 43
Регистрация: 12-06-06
Пользователь №: 18 002



Пытаюсь считать данные с AD7265, который подсоединён к SPORT1 BF537.
Программа всё время заходит в обработчик прерывания. Ощущение, что надо где-то сбросить флаг прерывания, но я не понимаю где...
Вот код обработчика прерывания и инициализации (VisualDP ++ 4.5):
Код
EX_INTERRUPT_HANDLER(SPORT1_RX_HANDLER)
{
    *pDMA5_IRQ_STATUS = 1; // write one to clear
    //вроде как строчка выше должна сбросить флаг прерывания...

    while(SPORT1_STAT & RXNE)
    {
        u16 adc_data = *pSPORT1_RX;
        //пишу данные куда надо
    }

    ssync();
}

void init_AD7265()
{
    //инициализирую ноги для выбора канала АЦП и т.д.

    *pSPORT1_RCR1 = RCKFE | LRFS | RFSR | IRFS | IRCLK;
    *pSPORT1_RCR2 = RXSE | 15;
    *pSPORT1_RCLKDIV = 59;
    *pSPORT1_RFSDIV = 24;
    ssync();

    *pSPORT1_RCR1 |= RSPEN;
    ssync();
}

void init_interrupts()
{
    *pSIC_IAR0 = 0x0FFFFFFF; //SPORT1 RX IRQ 0=IVG7
    *pSIC_IAR1 = 0xFFFFFFFF;
    *pSIC_IAR2 = 0xFFFFFFFF;
    *pSIC_IAR3 = 0xFFFFFFFF;

    /* Register Interrupt Handlers and Enable Core Interrupts                    */
    register_handler(ik_ivg7, SPORT1_RX_HANDLER);

    /* Enable SIC Level Interrupts                                */
    *pSIC_IMASK = IRQ_DMA5; //DMA5 - SPORT1_RX
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 14:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01368 секунд с 7
ELECTRONIX ©2004-2016