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

 
 
 
Reply to this topicStart new topic
> Общее прерывание для двух модулей?
Jenya7
сообщение Feb 26 2018, 06:16
Сообщение #1


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Прерывание USB_LP_CAN1_RX0_IRQHandler общее для CAN и USB? Или я что то не понимаю?
Если да общее то какой идиот это придумал?

а в startup есть такая строка
DCD USB_LP_IRQHandler ; USB Low Priority remap
это значит можно пользовать или какие то движения нужны для ремапа?

Сообщение отредактировал Jenya7 - Feb 26 2018, 07:04
Go to the top of the page
 
+Quote Post
ataradov
сообщение Feb 26 2018, 07:09
Сообщение #2


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

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE
It is possible to remap the USB interrupts (USB_HP, USB_LP and USB_WKUP) on interrupt lines 74, 75 and 76
respectively by setting the USB_IT_RMP bit in the Section 12.1.1: SYSCFG configuration register 1 (SYSCFG_CFGR1) on
page 245.


Зачем оно так сделано по-умолчанию - хрен знает.

Сообщение отредактировал ataradov - Feb 26 2018, 07:10
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Feb 26 2018, 07:34
Сообщение #3


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

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(ataradov @ Feb 26 2018, 13:09) *
Зачем оно так сделано по-умолчанию - хрен знает.

хреново. конкретно в STM32F303VC USB сидит на PA11, PA12 и нет ремапа. а даже еслиб был я не могу поменять пины.

что то я не понимаю
Цитата
Bit 5 USB_IT_RMP: USB interrupt remap (STM32F303xB/C/D/E devices only)
This bit is set and cleared by software. It controls the USB interrupts mapping.
0: USB_HP, USB_LP and USB_WAKEUP interrupts are mapped on interrupt lines 19, 20
and 42 respectively.
1: USB_HP, USB_LP and USB_WAKEUP interrupts are mapped on interrupt lines 74, 75
and 76 respectively

в даташит
74-VSS
75-VDD

а. по моему понял. это не пины. это индексы в interrupt table. то есть я могу переремапить интерапты и спать спокойно?

так можно сделать?
Код
void USB_Interrupts_Config(void)
{      
    NVIC_InitTypeDef NVIC_InitStructure;
    
     //remap interrupt
    SYSCFG->CFGR1 |= SYSCFG_CFGR1_USB_IT_RMP;

    /* 2 bit for pre-emption priority, 2 bits for subpriority */
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

    /* Enable the USB interrupt */
    NVIC_InitStructure.NVIC_IRQChannel = USB_LP_IRQn;  //USB_LP_CAN1_RX0_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
  
    /* Enable the USB Wake-up interrupt */
    NVIC_InitStructure.NVIC_IRQChannel = USBWakeUp_RMP_IRQn;  //USBWakeUp_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    NVIC_Init(&NVIC_InitStructure);  
}


Сообщение отредактировал Jenya7 - Feb 26 2018, 08:08
Go to the top of the page
 
+Quote Post

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

 


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


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