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

 
 
> AT91: прерывания от UDP, использование маски
ivstech
сообщение Jan 29 2007, 06:42
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 204
Регистрация: 5-01-06
Пользователь №: 12 860



Разрешаю в IMR прерывание только от конечной точки 1, все остальные запрещаю (проверяю установки просмотром регистров в среде IAR). Почему-то срабатывает и от ENDPOINT0 тоже. Из-за чего такое может быть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dron_Gus
сообщение Jan 30 2007, 21:10
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Цитата(ivstech @ Jan 30 2007, 20:12) *
Вот мой код:
AT91F_UDP_DisableIt (AT91C_BASE_UDP, ~AT91C_UDP_EPINT1);
AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, AT91C_ID_UDP, 0x07, AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, &UDP_c_irq_handler);




Судя по pdf первым делом надо проинициализировать AIC. (пункт 35.3.3)



И для синхронизации лучше использовать примерно такие макросы

Код


#define UDP_EP_ClrFlag(AT91PS_UDP, endpoint, flags) { \
  while (AT91PS_UDP->UDP_CSR[endpoint] & (flags)) \
   AT91PS_UDP->UDP_CSR[endpoint] &= ~(flags); \
  }

#define UDP_EP_SetFlag(AT91PS_UDP, endpoint, flags) { \
  while ((AT91PS_UDP->UDP_CSR[endpoint] & (flags)) != (flags)) \
   AT91PS_UDP->UDP_CSR[endpoint] |= flags; \
  }


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post



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

 


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


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