static void radio_bus_init() { status = RF_IDLE; SPI2_Init_Advanced( _SPI_FPCLK_DIV64, _SPI_MASTER | _SPI_8_BIT | _SPI_CLK_IDLE_LOW | _SPI_FIRST_CLK_EDGE_TRANSITION | _SPI_MSB_FIRST | _SPI_SS_DISABLE | _SPI_SSM_ENABLE | _SPI_SSI_1, &_GPIO_MODULE_SPI2_PB13_14_15 ); GPIO_Digital_Output( &GPIOG_BASE, _GPIO_PINMASK_12 | _GPIO_PINMASK_9 ); GPIO_Digital_Input( &GPIOG_BASE, _GPIO_PINMASK_10 ); // Set input for IRQ // Enable clock for alternate pin functions RCC_APB2ENR |= ( 1 << RCC_APB2ENR ); //SYSCFGEN_bit = 1; // Map external interrupt on PG10 SYSCFG_EXTICR3 |= ( 1 << EXTI81 ) | ( 1 << EXTI82 ); EXTI_RTSR &= ~( 1 << TR10 ); // Set interrupt on Rising edge (none) EXTI_FTSR |= ( 1 << TR10 ); // Set Interrupt on Falling edge (PG10) EXTI_IMR |= ( 1 << MR10 ); // Set mask NVIC_IntEnable( IVT_INT_EXTI15_10 ); // Enable External interrupt bus_initialized = true; // Note: Radio - By default all IRQ sources are enabled. }
bool init_UART(UART_DESC * _urt, u8 _usartNumber){ USART_InitTypeDef USART_InitStruct; _urt->usart_No = _usartNumber; USART_StructInit(&USART_InitStruct); //8bit, parity_none, stopbit_1 .. switch(_urt->usart_No){ case 2: USART_InitStruct.USART_BaudRate = 115200; RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); _urt->usartBase = (USART_TypeDef*)USART2_BASE; uartRegister[2] = _urt; break; default: return FALSE; } USART_DeInit(_urt->usartBase); USART_Init(_urt->usartBase, &USART_InitStruct); init_Comm(&_urt->parent); _urt->Tick = _urt->parent.Tick; _urt->parent.Tick = &UART_Tick; USART_ITConfig(_urt->usartBase, USART_IT_RXNE, ENABLE); NVIC_IntEnable(USART2_IRQn,0x02); initHW_UART(_urt); USART_Cmd(_urt->usartBase, ENABLE); return TRUE; }
/************************************************************************************************** * Init MCU **************************************************************************************************/ void Init_MCU() { // Set PORTB8/7 to Open Drain output mode GPIO_Config(&GPIOB_BASE, _GPIO_PINMASK_8, _GPIO_CFG_SPEED_50MHZ | _GPIO_CFG_OTYPE_OD | _GPIO_CFG_MODE_OUTPUT); GPIO_Config(&GPIOB_BASE, _GPIO_PINMASK_7, _GPIO_CFG_SPEED_50MHZ | _GPIO_CFG_OTYPE_OD | _GPIO_CFG_MODE_OUTPUT); GPIO_Digital_Output(&GPIOD_ODR, _GPIO_PINMASK_12); // LED GREEN GPIO_Digital_Output(&GPIOD_ODR, _GPIO_PINMASK_13); // LED ORANGE GPIO_Digital_Output(&GPIOD_ODR, _GPIO_PINMASK_14); // LED RED GPIO_Digital_Output(&GPIOD_BASE, _GPIO_PINMASK_15); // LED BLUE GPIO_Digital_Output(&GPIOC_ODR, _GPIO_PINMASK_5); // RF_STB GPIO_Digital_Output(&GPIOE_ODR, _GPIO_PINMASK_4); // RF_RST GPIO_Digital_Output(&GPIOA_IDR, _GPIO_PINMASK_0); // Button GPIO_Alternate_Function_Enable(&_GPIO_MODULE_USART2_PA23); UART2_Init_Advanced(19200, _UART_8_BIT_DATA, _UART_NOPARITY, _UART_ONE_STOPBIT, &_GPIO_MODULE_USART2_PA23); //**************************************************************************** /*UART3_Init_Advanced(9600, _UART_8_BIT_DATA, _UART_NOPARITY, _UART_ONE_STOPBIT, &_GPIO_MODULE_USART3_PB10_11); Delay_ms(100); USART3_CR1bits.RXNEIE = 1; // enable uart rx interrupt NVIC_IntEnable(IVT_INT_USART3); // enable interrupt vector Delay_ms(100); // Wait for UART module to stabilize*/ //**************************************************************************** UART6_Init_Advanced(19200, _UART_8_BIT_DATA, _UART_NOPARITY, _UART_ONE_STOPBIT, &_GPIO_MODULE_USART6_PC67 ); Delay_ms(100); // Enable Usart Receiver interrupt: USART6_CR1bits.RXNEIE = 1; // enable uart rx interrupt NVIC_IntEnable(IVT_INT_USART6); // enable interrupt vector Enableinterrupts(); }
static void init_timer2() { RCC_APB1ENR.TIM2EN = 1; TIM2_CR1.CEN = 0; TIM2_PSC = 239; // 100ms TIM2_ARR = 62499; NVIC_IntEnable( IVT_INT_TIM2 ); TIM2_DIER.UIE = 1; TIM2_CR1.CEN = 1; }
void timer_setup() { RCC_APB1ENR.TIM2EN = 1; TIM2_CR1.CEN = 0; TIM2_PSC = 24; TIM2_ARR = 55999; NVIC_IntEnable(IVT_INT_TIM2); TIM2_DIER.UIE = 1; TIM2_CR1.CEN = 1; }
//Timer2 Prescaler :599; Preload = 62499; Actual Interrupt Time = 50 ms void init_timer2() { RCC_APB1ENR.TIM2EN = 1; TIM2_CR1.CEN = 0; TIM2_PSC = 19; TIM2_ARR = 59999; NVIC_IntEnable(IVT_INT_TIM2); TIM2_DIER.UIE = 1; TIM2_CR1.CEN = 1; }
void UART_init(PTO_UART_InitTypeDef * _desc) { USART_InitTypeDef USART_InitStruct; urt=*_desc; USART_StructInit(&USART_InitStruct); //8bit, parity_none, stopbit_1 .. USART_InitStruct.USART_BaudRate = _desc->baudrate; RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); USART_DeInit(USART2); USART_Init(USART2, &USART_InitStruct); USART_ITConfig(USART2, USART_IT_RXNE, ENABLE); NVIC_IntEnable(USART2_IRQn,0x02); initHW_UART(); USART_Cmd(USART2, ENABLE); }
/* * System initialization * * This function initializes the system */ static int system_init() { DisableInterrupts(); GPIO_Digital_Input( &PTB_PDOR, _GPIO_PINMASK_13 ); I2C0_Init_Advanced(400000, &_GPIO_Module_I2C0_PD8_9); Delay_ms( 100 ); // Initialize APDS-9960 (configure I2C and initial values) ir_gesture_init( APDS9960_I2C_ADDR ); ir_gesture_enable_gesture_sensor( true ); // Initialize screen OLED_Init(); OLED_DrawImage( irgesture_bmp, 0, 0 ); OLED_SetFont( guiFont_Tahoma_8_Regular, OLED_COLOR_WHITE, 0 ); PORTB_PCR13bits.IRQC = 0xB; NVIC_IntEnable( IVT_INT_PORTB ); EnableInterrupts(); return 0; }
void Timer2_On(){ NVIC_IntEnable(IVT_INT_TIM2); TIM2_DIER.UIE = 1; TIM2_CR1.CEN = 1; }