Easyelectronics.ru

Электроника для всех
Текущее время: 19 ноя 2019, 18:59

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: PIC32 - не работают прерывания [решено]
СообщениеДобавлено: 20 дек 2018, 20:25 
Заглядывает иногда

Зарегистрирован: 16 сен 2018, 10:41
Сообщения: 124
Микроконтроллер PIC32MZ512EFF144, пытаюсь получить прерывание от DMA.

Делаю так:
записываю в CP0 EBASE 0x9D000000
записываю в OFF134 (IRQ134, DMA0) смещение от 0x9D000000 до начала обработчика
записываю 0x00800000 в CP0 CAUSE (бит 23, IV=1)
CP0 STATUS делаю and 0x00580000 (остаются BEV, Soft Reset, NMI)
сброс в ноль бита CP0 STATUS BEV
INTCON.12=1 (мультивектор)
устанавливаю максимальный приоритет (7) в IPC33
разрешаю прерывание в IEC4
asm("ei")

DMA работает, флаг прерывания в IFS4 устанавливается, в основной программе в цикле могу флаг сбросить, он опять поднимается. Но обработчик не выполняется.
Что не так? Что-то забыл? Или не в том порядке делаю?

Ещё нюанс. В даташите указано, что OFFx после POR равны 0x0000. У меня в них почему-то случайные данные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PIC32 - не работают прерывания [решено]
СообщениеДобавлено: 21 дек 2018, 20:49 
Заглядывает иногда

Зарегистрирован: 16 сен 2018, 10:41
Сообщения: 124
Работает. В регистре CP0 IntCtl установил биты VS в 0x01.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB