Simple "hello world" style program for X-NUCLEO-IKS01A1 MEMS Inertial
Dependencies: BLE_API X_NUCLEO_IDB0XA1 X_NUCLEO_IKS01A1 mbed
Fork of HelloWorld_IKS01A1 by
Diff: led_RGB.c
- Revision:
- 8:1c6281289d67
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/led_RGB.c Sun Nov 15 09:00:40 2015 +0000 @@ -0,0 +1,71 @@ +#include "led_RGB.h" +#include "stm32f4xx_conf.h" +#include "stm32f4xx.h" +#include "main.h" + +void Blue_Red_Setup(void) +{ + TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; + TIM_OCInitTypeDef TIM_OCInitStructure; + GPIO_InitTypeDef GPIO_InitStructure; + + GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_TIM4); + GPIO_PinAFConfig(GPIOB, GPIO_PinSource0, GPIO_AF_TIM3); + GPIO_PinAFConfig(GPIOB, GPIO_PinSource1, GPIO_AF_TIM3); + + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_6; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; + GPIO_Init(GPIOB, &GPIO_InitStructure); + + TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; + TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; + TIM_TimeBaseStructure.TIM_Prescaler = (uint16_t) (RealSysClock / 50000) - 1; + TIM_TimeBaseStructure.TIM_Period = 255; //f = 0.25KHz + TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; + TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); + + TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; + TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; + TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; + TIM_OCInitStructure.TIM_Pulse = 150; //registro confrontato con oc + TIM_OC3Init(TIM3, &TIM_OCInitStructure); + + TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; + TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; + TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; + TIM_OCInitStructure.TIM_Pulse = 150; //registro confrontato con oc + TIM_OC4Init(TIM3, &TIM_OCInitStructure); + + TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable); + TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable); + +} + +void Green_Setup(void) +{ + TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; + TIM_OCInitTypeDef TIM_OCInitStructure; + + TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; + TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; + TIM_TimeBaseStructure.TIM_Prescaler = (uint16_t) (RealSysClock / 50000) - 1; + TIM_TimeBaseStructure.TIM_Period = 255; //f = 0.25KHz + TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; + TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); + + TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; + TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; + TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; + TIM_OCInitStructure.TIM_Pulse = 150; //registro confrontato con oc + TIM_OC1Init(TIM4, &TIM_OCInitStructure); + + TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable); + + TIM_Cmd (TIM4, ENABLE); + TIM_Cmd (TIM3, ENABLE); + +} +