Цитата(Копейкин @ Aug 22 2012, 18:24)

Нет, автоматом не сбрасывается.
Ты должен иметь свой триггер, который устанавливается железом
и сбрасывается программой (например, чтением регистра).
Спасибо. Понял.
Читаю мануалы. Пытаюсь найти простейший пример (программный и аппаратный) реализации обработки прерывания от
пользовательской логики. Пока ничего путного не нашел.
Также не ясен момент (нигде пока не нашел) как устанавливается как должно срабатывать прерывание (уровень, фронт, спад)
В пользовательской логике формирую просто короткий положительный импульс. Вроде и сбрасывать в этом случае ничего не надо.
В программе вход в обработчик имеется, но выхода из него нет - виснет на обработчике.
В программе при инициализации системы регистрирую обработчик так
Код
alt_irq_register(RAMTEST_0_IRQ, (void*)RAMTEST_0_BASE, ramtest_isr);
Сам обработчик
CODE
// Обработчик прерываний RAMTEST_0_IRQ
static void ramtest_isr()
{
Start == 0;
int ramresult;
char uramresult[10] = {0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x00};
ramresult=IORD_ALTERA_AVALON_RAM_0(RAMTEST_0_BASE);
uramresult[1] = ramresult;
uramresult[0] = ramresult >> 8;
.... и т. д.
}
Если можно в коротком примере как должно быть правильно так, чтобы обработчик по фронту от пользовательской логики выполнил свою задачу однократно и не зависал.?
Сообщение отредактировал Acvarif - Aug 23 2012, 06:31