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

 
 
 
Reply to this topicStart new topic
> Периодические прерывания, Microblaze
Andrey Pesoshin
сообщение Aug 4 2010, 19:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 5-07-10
Пользователь №: 58 297



Приветствую!

Хочу генерировать периодические прерывания (например, раз в 0.1 сек) и обрабатывать их в microblaze.
Добавил в проект xps_timer (22 разряда), подключил выход Interrupt напрямую к входу Interrupt Microblaze'а минуя контроллер прерываний (так ведь можно, когда других прерываний не надо?)

Конфигурирую таймер, чтобы считал от 5 000 000 до 0, потом обновлялся и считал заново. В документации написано, что по достижению 0 должно генерироваться прерывание.

Проблема в том, что этого не происходит. Смотрю в chipscope analyzer'е.

Конфигурирую таймер следующим образом:
Код
    XTmrCtr timer;
    int status = XTmrCtr_Initialize(&timer, XPAR_TMRCTR_0_DEVICE_ID);
    xil_printf("Timer initialization: %d\n\r", status == XST_SUCCESS);

    XTmrCtr_SetResetValue(&timer, 0, 5000000);

    XTmrCtr_SetOptions(&timer, 0, XTC_INT_MODE_OPTION | XTC_DOWN_COUNT_OPTION | XTC_AUTO_RELOAD_OPTION);

    u32 start_value = XTmrCtr_GetValue(&timer, 0);
    xil_printf("Start value: %d\n\r", start_value);

    XTmrCtr_Start(&timer, 0);


Подскажите плиз
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Aug 6 2010, 09:37
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



В чём собственно проблема.

Таймер не считает, не дергается сигнал по достижении 0, или проц в ISR не входит?
Go to the top of the page
 
+Quote Post
Andrey Pesoshin
сообщение Aug 7 2010, 06:57
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 5-07-10
Пользователь №: 58 297



таймер считает, сам сигнал прерывания Interrupt, подключенный к microblaze, не генерируется по достижению таймером нуля
Go to the top of the page
 
+Quote Post
fars
сообщение Aug 15 2010, 21:27
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 3-04-08
Из: Киев, Украина
Пользователь №: 36 452



А с контролером прерываний пробывал? wink.gif
Go to the top of the page
 
+Quote Post
YVA
сообщение Sep 17 2010, 06:44
Сообщение #5





Группа: Новичок
Сообщений: 9
Регистрация: 22-04-09
Пользователь №: 48 071



Цитата(Andrey Pesoshin @ Aug 7 2010, 14:57) *
таймер считает, сам сигнал прерывания Interrupt, подключенный к microblaze, не генерируется по достижению таймером нуля

Посмотрите в регистре состояния таймера (TCSR) разрешена ли выдача аппаратного прерывания (ENIT) , 25-й бит.
(Для каждого таймера свой регистр.)

Сообщение отредактировал YVA - Sep 17 2010, 06:46
Go to the top of the page
 
+Quote Post

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

 


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


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