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

 
 
> Работа с таймером в ниос
_Anatoliy
сообщение Aug 27 2018, 12:33
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Коллеги, почему то не выходит ниос из прерывания от таймера. Контроллер прерываний встроенный.
Обработчик:
Код
void Timer0_isr()
    {
    IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_0_BASE, 0);
    flag_isr_tmr = 1;
    }

Ставлю здесь точку остановки , программа в main() больше не возвращается.
Ведь командой
Код
IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_0_BASE, 0);
я должен снять запрос прерывания.
Собственно зависание происходит в библиотечной функции alt_irq_handler. Я так понял что не сбрасывается запрос.
Код
........................
    active = alt_irq_pending ();
    
  } while (active);


active всегда не равен нулю. Что ещё глянуть?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Swup
сообщение Aug 28 2018, 08:10
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 2-09-11
Из: Москва
Пользователь №: 66 970



А как вы его включаете?

Вообще кажется, что он срабатывает снова, сразу как вы его сбрасываете.
Посмотрите просто в сигнал тапе и все будет понятно.

вот например у меня устанавливается таймер и сбрасывается (но это с VIC, хотя разницы особо нет:
Код
void ru_timer_isr() {
   IOWR(PERIPHERAL_TIMER_RU_BASE,0,0);
   ...
}
void ru_timer_irq_init()
{
    alt_u32 timer_cnt = sys_freq; // 1sec
    IOWR(PERIPHERAL_TIMER_RU_BASE, 2, timer_cnt & 0xFFFF);
    IOWR(PERIPHERAL_TIMER_RU_BASE, 3, (timer_cnt>>16) & 0xFFFF);
    IOWR(PERIPHERAL_TIMER_RU_BASE, 0, 0x00);
    IOWR(PERIPHERAL_TIMER_RU_BASE, 1, 0x07); // timer start, cont, irq

    alt_ic_isr_register( 0x00, PERIPHERAL_TIMER_RU_IRQ, ru_timer_isr, NULL, 0x00 );
}
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Aug 28 2018, 09:41
Сообщение #3


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Swup @ Aug 28 2018, 11:10) *

Установил флажок fixed period и всё нормально заработало. Меня это устраивает.
Так и думал что пропустил что-то...
Всем спасибо за помощь!
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 02:25
Рейтинг@Mail.ru


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