ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Четверг
24 сентября
/1035107
Топик полностью
Aleksey_75 (09.09.2020 20:29 - 21:09, просмотров: 194) в ответ на #2 По ссылке очень приятный пример работы с выводами, а есть ли какие примеры обработчиков прерываний? - автор: teap0t
))) Смотря с какими ))) если EXTI то у меня так 
typedef struct
{
    gpio_set_t 			pin;
    uint8_t 			prio;
    uint8_t 			sub;
    EXTITrigger_TypeDef exti_mode;
    FunctionalState		start_mode;
    uint8_t             debounce;
    exti_set_func_t     exti_set_func;
}exti_set_t;

создаем массив с описанием

const exti_set_t exti_set[EXTI_SIZE] = 
{   
#ifdef BOOT
	/* 0  */    { INT_NRF,          DEF_PRIO, DEF_SUB, EXTI_Trigger_Falling, 	DISABLE, false, NULL },	
	/* 1  */    { INT_ACSEL,        DEF_PRIO, DEF_SUB, EXTI_Trigger_Falling,        DISABLE, false, NULL },	
	/* 2  */    { LIN_B_RX,         DEF_PRIO, DEF_SUB, EXTI_Trigger_Falling,        DISABLE, false, NULL },	
	/* 3  */    { TAG_STS,          DEF_PRIO, DEF_SUB, EXTI_Trigger_Rising_Falling, DISABLE, false, NULL },	
	/* 4  */    { NO_EXTI,          DEF_PRIO, DEF_SUB, EXTI_Trigger_Rising_Falling, DISABLE, false, NULL },	
	/* 5  */    { CAN_B_RX ,        DEF_PRIO, DEF_SUB, EXTI_Trigger_Falling,        DISABLE, false, NULL },	
	/* 6  */    { IGN_IN,           DEF_PRIO, DEF_SUB, EXTI_Trigger_Rising_Falling, DISABLE, false, NULL },	
	/* 7  */    { NO_EXTI,          DEF_PRIO, DEF_SUB, EXTI_Trigger_Rising_Falling, DISABLE, false, NULL },	
	/* 8  */    { CAN_A_RX,         DEF_PRIO, DEF_SUB, EXTI_Trigger_Falling, 	DISABLE, false, NULL },	
	/* 9  */    { USB_DETECT,       DEF_PRIO, DEF_SUB, EXTI_Trigger_Rising_Falling, ENABLE,  false, usb_detect_irq_handler }, 
	/* 10 */    { IN_2,             DEF_PRIO, DEF_SUB, EXTI_Trigger_Rising_Falling, DISABLE, false, NULL },	  
	/* 11 */    { LIN_A_RX,         DEF_PRIO, DEF_SUB, EXTI_Trigger_Falling, 	DISABLE, false, NULL },	
	/* 12 */    { NO_EXTI,          DEF_PRIO, DEF_SUB, EXTI_Trigger_Rising_Falling, DISABLE, false, NULL },	
	/* 13 */    { NO_EXTI,          DEF_PRIO, DEF_SUB, EXTI_Trigger_Rising_Falling, DISABLE, false, NULL },	
	/* 14 */    { IN_1,             DEF_PRIO, DEF_SUB, EXTI_Trigger_Rising_Falling, DISABLE, false, NULL },	
	/* 15 */    { NO_EXTI,          DEF_PRIO, DEF_SUB, EXTI_Trigger_Rising_Falling, DISABLE, false, NULL },	    
#else
}

На основании этой таблички происходит первоначальный инит вызов необходимых функций. Файл bsp_exti.c не изменяемся вообще, просто переносится из проекта в проект ))

Ответить
Ответы