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

 
 
> Не могу разобраться с ISR, два дня уже бьюсь(((((((
lons83
сообщение Mar 31 2013, 10:58
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 69
Регистрация: 9-11-12
Пользователь №: 74 296



Помогите разобраться...два дня сижу ни как не могу понять что не так.

Хочу чтобы при каждом нажатии кнопки (кнопка сажается на землю (спадающий фронт)), загорались а потом гасли светодиоды.

Настраиваю прерывания по кнопке.
Настойка PIO:
- Генерейт IRQ по EDGE
- Синхронизация по Спадающему фрону, Enable bit-clearing НЕ УСТАНОВЛЕН.

Текст в NIOS ECLIPSE (web 12.1)

Код
#include <altera_avalon_pio_regs.h>
#include <system.h>
#include <alt_types.h>
#include <sys/alt_irq.h>

unsigned char i;
void init_isr ();
void handle_btn();


void init_isr ()      // инициализация
{

IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_BUT_BASE, 0xff);
IOWR_ALTERA_AVALON_PIO_IRQ_MASK(PIO_BUT_BASE, 0x01);


#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT
    alt_ic_isr_register(PIO_BUT_IRQ_INTERRUPT_CONTROLLER_ID, PIO_BUT_IRQ, handle_btn, 0, 0x0);
#else
    alt_irq_register( PIO_BUTTON_IRQ, 0, handle_btn);
#endif

}


void handle_btn()
{
i++;

//  при первом заходе зажигание светодиодов и сброс EDGE CApture (чтобы выйти из прерывания)

if (i==1) { IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, 0x03);         IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_BUT_BASE, 0xff);}                
        
//  при втором заходе гашение светодиодов и сброс EDGE CApture (чтобы выйти из прерывания)
                                                              
if (i==2) { i=0; IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, 0x00);  IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_BUT_BASE, 0xff);}

}


int main()
{
    i=0;

    IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, 0x00);

    init_isr();

    while (1);

    return 0;
}



Результат:

Светодиоды зажигаются и гаснут при каждом переключении (то есть как будто стоит срабатывание при любом изменении (ANY))
а в некоторых случаях некоторые переключения просто гинорируются....

Может кто-нибудь подскажет что нет так...
Заранее спасибо))))

Сообщение отредактировал lons83 - Mar 31 2013, 11:01
Go to the top of the page
 
+Quote Post



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

 


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


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