394 lines
18 KiB
C
394 lines
18 KiB
C
/*==============================================================================
|
||
* @file periph_config.h
|
||
* @author Разваляев Алексей
|
||
*------------------------------------------------------------------------------
|
||
* Общий файл конфигурации периферии проекта.
|
||
*
|
||
* Содержит:
|
||
* + Глобальные флаги включения периферии (USE_...)
|
||
* + Конфигурации тактирования и источников RCU
|
||
* + Таблицы конфигурации GPIO
|
||
* + Конфигурационные структуры для периферии:
|
||
* - GPIO
|
||
* - UART
|
||
* - TMR (таймеры)
|
||
* - ADC (SEQ и DC)
|
||
* - DMA
|
||
* - NVIC (приоритеты прерываний)
|
||
*
|
||
* Используется драйверами:
|
||
* - gpio.c
|
||
* - uart.c
|
||
* - tmr.c
|
||
* - adc.c
|
||
* - dma.c
|
||
*
|
||
* Реализация инициализации периферии находится в соответствующих *.c файлах.
|
||
*==============================================================================
|
||
*/
|
||
#pragma once
|
||
//-- Includes ------------------------------------------------------------------
|
||
#include "sysclk.h"
|
||
#include "gpio.h"
|
||
#include "uart.h"
|
||
#include "tmr.h"
|
||
#include "adc.h"
|
||
|
||
/* Обработчик ошибок */
|
||
void Error_Handler(void);
|
||
|
||
//-- Общие Конфигурации -------------------------------------------------------
|
||
// 0 - использовать периферию
|
||
// 1 - не использовать
|
||
|
||
/* UART */
|
||
#define USE_UART0 0 /*!< Использовать UART0 */
|
||
#define USE_UART1 1 /*!< Использовать UART1 */
|
||
|
||
/* Timers */
|
||
#define USE_TMR0 1 /*!< Использовать Таймер 0 */
|
||
#define USE_TMR1 1 /*!< Использовать Таймер 1 */
|
||
#define USE_TMR2 1 /*!< Использовать Таймер 2 */
|
||
#define USE_TMR3 0 /*!< Использовать Таймер 3 */
|
||
|
||
/* ADC */
|
||
#define USE_ADC_SEQ0 0 /*!< Использовать Секвенсор 0 */
|
||
#define USE_ADC_SEQ1 1 /*!< Использовать Секвенсор 1 */
|
||
#define USE_ADC_DC0 0 /*!< Использовать Компаратор 0 */
|
||
#define USE_ADC_DC1 0 /*!< Использовать Компаратор 1 */
|
||
#define USE_ADC_DC2 0 /*!< Использовать Компаратор 2 */
|
||
#define USE_ADC_DC3 0 /*!< Использовать Компаратор 3 */
|
||
|
||
/** @note Для RETARGET надо объявить этот дефайн в проекте
|
||
Options for Target -> C/C++ -> Defines
|
||
*/
|
||
//#define RETARGET // закоментирован - отключен,
|
||
// // разкоментирован - включен
|
||
//#define RETARGET_USE_ITM // закоментирован - использовать UART,
|
||
// // разкоментирован - использовать ITM
|
||
// Для дальнейшей настройки RETARGET -> retarget_conf.h
|
||
|
||
//-- RCU Конфигурации ---------------------------------------------------------
|
||
/** @brief Источник тактирования МК
|
||
* @note Система всегда стартует с внутреннего МК и после потом переходит на PLL и заданный здесь источник
|
||
Поменять тактировние при старте можно в system_K1921VK035.h
|
||
*/
|
||
static RCU_PLL_Ref_TypeDef SYSCLK_Oscil_Type = RCU_PLL_Ref_OSEClk;
|
||
|
||
/** @brief Желаемая частота тактирования МК в МГц*/
|
||
#define SYSCLK_CORE_CLOCK_MHZ 100
|
||
|
||
/** @brief Частота тиков uwTick тактирования МК */
|
||
static SYSCLK_TickHz_TypeDef SYSCLK_TickType = SYSCLK_Tick_1ms;
|
||
|
||
//-- GPIO Конфигурации --------------------------------------------------------
|
||
/** @note
|
||
Note:
|
||
Периферия сама настроит нужные пины в gpiox_config на альтернативные функции
|
||
*/
|
||
|
||
/** @brief Конфигурации пинов порта GPIOA */
|
||
static GPIO_Init_TypeDef gpioa_config[] = {
|
||
// Pin, Mode, OutMode, InMode, PullMode, DriveMode
|
||
{ GPIO_Pin_0, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_1, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_2, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_3, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_4, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_5, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_6, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_7, GPIO_PinMode_Output, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_8, GPIO_PinMode_Output, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_9, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_10, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_11, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_12, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_13, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_14, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_15, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
};
|
||
|
||
/** @brief Конфигурации пинов порта GPIOB */
|
||
static GPIO_Init_TypeDef gpiob_config[] = {
|
||
// Pin, Mode, OutMode, InMode, PullMode, DriveMode
|
||
{ GPIO_Pin_0, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_1, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_2, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_3, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_4, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_5, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_6, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_7, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_8, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_9, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_10, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_11, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_12, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_13, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_14, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
{ GPIO_Pin_15, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
|
||
};
|
||
|
||
|
||
|
||
//-- UART Конфигурации --------------------------------------------------------
|
||
#if USE_UART0==1
|
||
static UART_ExtInit_TypeDef uart0_config = {
|
||
//StopBit, ParityBit, DataWidth, BaudRate, FIFO, Direction
|
||
UART_StopBit_1, UART_ParityBit_Disable, UART_DataWidth_8, 115200, DISABLE, UART_Direction_RxTx,
|
||
//RxCallback TxCallback IdleCallback ErrCallback
|
||
NULL, NULL, NULL, NULL
|
||
};
|
||
#endif
|
||
|
||
#if USE_UART1==1
|
||
static UART_ExtInit_TypeDef uart1_config = {
|
||
//StopBit, ParityBit, DataWidth, BaudRate, FIFO, Direction
|
||
UART_StopBit_1, UART_ParityBit_Disable, UART_DataWidth_8, 115200, DISABLE, UART_Direction_RxTx,
|
||
//RxCallback TxCallback IdleCallback ErrCallback
|
||
NULL, NULL, NULL, NULL
|
||
};
|
||
#endif
|
||
|
||
|
||
|
||
//-- TMR Конфигурации ---------------------------------------------------------
|
||
/** @note Макросы для задания периода:
|
||
* - LOAD(Period, Prescaler) - период в тиках и прескалер*
|
||
* - FREQ_HZ(Hz) - период таймера в Герцах
|
||
* - PERIOD_US(us) - период в микросекундах
|
||
* * Т.к. аппаратного прескалера нет, используется программный.
|
||
* Получить тики будто бы они с прескалером можно функциями TMR_Get_Cnt, TMR_Get_Period
|
||
*/
|
||
#if USE_TMR0==1
|
||
static TMR_ExtInit_TypeDef tmr0_config = {
|
||
//SystemCoreClock, Period Update
|
||
SYSCLK_CORE_CLOCK_MHZ, LOAD(0xFFFFFFFF, SYSCLK_CORE_CLOCK_MHZ-1),
|
||
//IT ADCSOC DMAReq ExtInput
|
||
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
|
||
};
|
||
#endif
|
||
|
||
#if USE_TMR1==1
|
||
static TMR_ExtInit_TypeDef tmr1_config = {
|
||
//SystemCoreClock, Period Update
|
||
SYSCLK_CORE_CLOCK_MHZ, FREQ_HZ(10),
|
||
//IT ADCSOC DMAReq ExtInput
|
||
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
|
||
};
|
||
#endif
|
||
|
||
#if USE_TMR2==1
|
||
static TMR_ExtInit_TypeDef tmr2_config = {
|
||
//SystemCoreClock, Period Update
|
||
SYSCLK_CORE_CLOCK_MHZ, PERIOD_US(1000000),
|
||
//IT ADCSOC DMAReq ExtInput
|
||
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
|
||
};
|
||
#endif
|
||
|
||
#if USE_TMR3==1
|
||
static TMR_Init_TypeDef tmr3_config = {
|
||
//SystemCoreClock, Period Update
|
||
SYSCLK_CORE_CLOCK_MHZ, PERIOD_US(1000),
|
||
//IT ADCSOC DMAReq ExtInput
|
||
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
|
||
};
|
||
#endif
|
||
|
||
//-- ADC Конфигурации -----------------------------------------------------
|
||
/** @brief Источник тактирования АЦП */
|
||
static RCU_PeriphClk_TypeDef ADC_ClockSource = RCU_PeriphClk_PLLClk;
|
||
/** @brief Желаемая частота тактирования АЦП в МГц*/
|
||
static float ADC_ClockMHz = 12.5;
|
||
/** @brief Пины каких каналов инициализировать для АЦП */
|
||
static ADC_ChannelEnableTypeDef adc_ch_config = {
|
||
//Channel 0, Channel 1, Channel 2, Channel 3
|
||
ENABLE, ENABLE, ENABLE, ENABLE,
|
||
};
|
||
//-- ADC SEQ Конфигурации -----------------------------------------------------
|
||
#if USE_ADC_SEQ0==1
|
||
static ADC_SEQ_ExtInit_TypeDef adc_seq0_config = {
|
||
//StartEvent, SWStartEn
|
||
ADC_SEQ_StartEvent_SwReq, ENABLE,
|
||
//Req[0], Req[1], Req[2], Req[3]
|
||
ADC_CH_Num_0, ADC_CH_Num_1, ADC_CH_Num_2, ADC_CH_Num_3,
|
||
//ReqMax, ReqAverage, ReqAverageEn
|
||
ADC_SEQ_ReqNum_1, ADC_SEQ_Average_2, DISABLE,
|
||
//RestartCount, RestartAverageEn, RestartTimer (в тиках ADC_ClockMHz)
|
||
0, DISABLE, 0,
|
||
//DCEn[0], DCEn[1], DCEn[2], DCEn[3]
|
||
DISABLE, DISABLE, DISABLE, DISABLE,
|
||
//DMAFIFOLevel, DMAEn
|
||
ADC_SEQ_DMAFIFOLevel_1, DISABLE,
|
||
//IT, ITCount BufferCircular
|
||
ENABLE, 0, ENABLE,
|
||
//SEQCpltCallback, BuffHalfCallback, BuffFullCallback, ErrorCallback
|
||
NULL, NULL, NULL, NULL,
|
||
};
|
||
#endif
|
||
#if USE_ADC_SEQ1==1
|
||
static ADC_SEQ_ExtInit_TypeDef adc_seq1_config = {
|
||
//StartEvent, SWStartEn
|
||
ADC_SEQ_StartEvent_SwReq, ENABLE,
|
||
//Req[0], Req[1], Req[2], Req[3]
|
||
ADC_CH_Num_0, ADC_CH_Num_1, ADC_CH_Num_2, ADC_CH_Num_3,
|
||
//ReqMax, ReqAverage, ReqAverageEn
|
||
ADC_SEQ_ReqNum_1, ADC_SEQ_Average_2, DISABLE,
|
||
//RestartCount, RestartAverageEn, RestartTimer (в тиках ADC_ClockMHz)
|
||
0, DISABLE, 0,
|
||
//DCEn[0], DCEn[1], DCEn[2], DCEn[3]
|
||
DISABLE, DISABLE, DISABLE, DISABLE,
|
||
//DMAFIFOLevel, DMAEn
|
||
ADC_SEQ_DMAFIFOLevel_1, DISABLE,
|
||
//IT, ITCount BufferCircular
|
||
ENABLE, 0, ENABLE,
|
||
//SEQCpltCallback, BuffHalfCallback, BuffFullCallback, ErrorCallback
|
||
NULL, NULL, NULL, NULL,
|
||
};
|
||
#endif
|
||
|
||
//-- ADC DC Конфигурации ------------------------------------------------------
|
||
#if USE_ADC_DC0==1
|
||
static ADC_DC_ExtInit_TypeDef adc_dc0_config = {
|
||
//DCOutput
|
||
DISABLE,
|
||
//ThresholdLow, ThresholdHigh
|
||
0, 0,
|
||
//Source, Channel, Mode, Condition
|
||
ADC_DC_Source_EOC, ADC_CH_Num_1, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
|
||
//IT
|
||
DISABLE,
|
||
//DC_TrigCallback, ErrorCallback
|
||
NULL, NULL
|
||
};
|
||
#endif
|
||
#if USE_ADC_DC1==1
|
||
static ADC_DC_ExtInit_TypeDef adc_dc1_config = {
|
||
//DCOutput
|
||
DISABLE,
|
||
//ThresholdLow, ThresholdHigh
|
||
0, 0,
|
||
//Source, Channel, Mode, Condition
|
||
ADC_DC_Source_EOC, ADC_CH_Num_1, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
|
||
//IT
|
||
DISABLE,
|
||
//DC_TrigCallback, ErrorCallback
|
||
NULL, NULL
|
||
};
|
||
#endif
|
||
#if USE_ADC_DC2==1
|
||
static ADC_DC_ExtInit_TypeDef adc_dc2_config = {
|
||
//DCOutput
|
||
DISABLE,
|
||
//ThresholdLow, ThresholdHigh
|
||
0, 0,
|
||
//Source, Channel, Mode, Condition
|
||
ADC_DC_Source_EOC, ADC_CH_Num_1, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
|
||
//IT
|
||
DISABLE,
|
||
//DC_TrigCallback, ErrorCallback
|
||
NULL, NULL
|
||
};
|
||
#endif
|
||
#if USE_ADC_DC3==1
|
||
static ADC_DC_ExtInit_TypeDef adc_dc3_config = {
|
||
//DCOutput
|
||
DISABLE,
|
||
//ThresholdLow, ThresholdHigh
|
||
0, 0,
|
||
//Source, Channel, Mode, Condition
|
||
ADC_DC_Source_EOC, ADC_CH_Num_1, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
|
||
//IT
|
||
DISABLE,
|
||
//DC_TrigCallback, ErrorCallback
|
||
NULL, NULL
|
||
};
|
||
#endif
|
||
|
||
//-- NVIC Конфигурации --------------------------------------------------------
|
||
/** @brief Приоритеты прерываний, 0 - самый высокий приоритет*/
|
||
static uint8_t NCIV_Priorities[] =
|
||
{
|
||
[GPIOA_IRQn] = 0,
|
||
[GPIOB_IRQn] = 0,
|
||
[TMR0_IRQn] = 0,
|
||
[TMR1_IRQn] = 0,
|
||
[TMR2_IRQn] = 0,
|
||
[TMR3_IRQn] = 0,
|
||
[UART0_TD_IRQn] = 0,
|
||
[UART0_RX_IRQn] = 0,
|
||
[UART0_TX_IRQn] = 0,
|
||
[UART0_E_RT_IRQn] = 0,
|
||
[UART1_TD_IRQn] = 0,
|
||
[UART1_RX_IRQn] = 0,
|
||
[UART1_TX_IRQn] = 0,
|
||
[UART1_E_RT_IRQn] = 0,
|
||
[SPI_RO_RT_IRQn] = 0,
|
||
[SPI_RX_IRQn] = 0,
|
||
[SPI_TX_IRQn] = 0,
|
||
[I2C_IRQn] = 0,
|
||
[ECAP0_IRQn] = 0,
|
||
[ECAP1_IRQn] = 0,
|
||
[ECAP2_IRQn] = 0,
|
||
[PWM0_IRQn] = 0,
|
||
[PWM0_HD_IRQn] = 0,
|
||
[PWM0_TZ_IRQn] = 0,
|
||
[PWM1_IRQn] = 0,
|
||
[PWM1_HD_IRQn] = 0,
|
||
[PWM1_TZ_IRQn] = 0,
|
||
[PWM2_IRQn] = 0,
|
||
[PWM2_HD_IRQn] = 0,
|
||
[PWM2_TZ_IRQn] = 0,
|
||
[QEP_IRQn] = 0,
|
||
[ADC_SEQ0_IRQn] = 0,
|
||
[ADC_SEQ1_IRQn] = 0,
|
||
[ADC_DC_IRQn] = 0,
|
||
[CAN0_IRQn] = 0,
|
||
[CAN1_IRQn] = 0,
|
||
[CAN2_IRQn] = 0,
|
||
[CAN3_IRQn] = 0,
|
||
[CAN4_IRQn] = 0,
|
||
[CAN5_IRQn] = 0,
|
||
[CAN6_IRQn] = 0,
|
||
[CAN7_IRQn] = 0,
|
||
[CAN8_IRQn] = 0,
|
||
[CAN9_IRQn] = 0,
|
||
[CAN10_IRQn] = 0,
|
||
[CAN11_IRQn] = 0,
|
||
[CAN12_IRQn] = 0,
|
||
[CAN13_IRQn] = 0,
|
||
[CAN14_IRQn] = 0,
|
||
[CAN15_IRQn] = 0,
|
||
[DMA_CH0_IRQn] = 0,
|
||
[DMA_CH1_IRQn] = 0,
|
||
[DMA_CH2_IRQn] = 0,
|
||
[DMA_CH3_IRQn] = 0,
|
||
[DMA_CH4_IRQn] = 0,
|
||
[DMA_CH5_IRQn] = 0,
|
||
[DMA_CH6_IRQn] = 0,
|
||
[DMA_CH7_IRQn] = 0,
|
||
[DMA_CH8_IRQn] = 0,
|
||
[DMA_CH9_IRQn] = 0,
|
||
[DMA_CH10_IRQn] = 0,
|
||
[DMA_CH11_IRQn] = 0,
|
||
[DMA_CH12_IRQn] = 0,
|
||
[DMA_CH13_IRQn] = 0,
|
||
[DMA_CH14_IRQn] = 0,
|
||
[DMA_CH15_IRQn] = 0,
|
||
[WDT_IRQn] = 0,
|
||
[RCU_IRQn] = 0,
|
||
[MFLASH_IRQn] = 0,
|
||
[FPU_IRQn] = 0,
|
||
};
|
||
static inline void NVIC_SetAllPriorities(void)
|
||
{
|
||
for(int i = 0; i < sizeof(NCIV_Priorities); i++)
|
||
{
|
||
NVIC_SetPriority((IRQn_Type)i, NCIV_Priorities[i]);
|
||
}
|
||
}
|
||
//-- Utils --------------------------------------------------------------------
|
||
|
||
|