dumber/software/robot/led.c
Sébastien DI MERCURIO 776a2f4ce6 initial commit
2018-08-27 16:39:49 +02:00

99 lines
2.3 KiB
C

/* Fichier de Gestion des LED*/
#include "system_dumby.h"
#include <stm32f10x.h>
#include "led.h"
TIM_TimeBaseInitTypeDef TIM_TimeBaseLED;
TIM_OCInitTypeDef TIM_OCConfigure;
/**
* @brief Cette fonction initialise les E/S du GPIO pour correspondre aux led.
* @param Aucun
*/
void MAP_LEDpin(void)
{
GPIO_InitTypeDef Init_Structure;
/// Configure les PIN B0 et B1 en output / alternate fonction
Init_Structure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
Init_Structure.GPIO_Speed = GPIO_Speed_50MHz;
Init_Structure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &Init_Structure);
}
/*void INIT_TIM3Led(void)
{
// On souhaite une résolution du PWM de 256 valeurs LED TIM3
TIM_TimeBaseLED.TIM_Period = 255;
TIM_TimeBaseLED.TIM_Prescaler = 3*3125;
TIM_TimeBaseLED.TIM_ClockDivision=0;
TIM_TimeBaseLED.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseLED);
// Configuration du PWM sur le timer 2
TIM_OCConfigure.TIM_OCMode=TIM_OCMode_PWM2;
TIM_OCConfigure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCConfigure.TIM_OutputNState = TIM_OutputNState_Enable;
TIM_OCConfigure.TIM_Pulse = 256; // Constante initialisé à 255, Pour un rapport cyclique nul
TIM_OCConfigure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC4Init(TIM3, &TIM_OCConfigure);
TIM_OC4PreloadConfig(TIM3,TIM_OCPreload_Enable);
TIM_OC3Init(TIM3, &TIM_OCConfigure);
TIM_OC3PreloadConfig(TIM3,TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM3, ENABLE);
// Enable Counter
TIM_Cmd(TIM3, ENABLE);
TIM_CtrlPWMOutputs(TIM3,ENABLE);
}
void setLEDGreen(unsigned char pulse)
{
uint16_t intermediaire;
intermediaire=255-pulse;
TIM_SetCompare4(TIM3, intermediaire);
}
void setLEDRed(unsigned char pulse)
{
uint16_t intermediaire;
intermediaire=255-pulse;
TIM_SetCompare3(TIM3, intermediaire);
}
*/
/*
* Gestion des LEDs
*/
void LEDorange(void)
{
GPIO_SetBits(GPIOB, GPIO_Pin_1);
GPIO_SetBits(GPIOB,GPIO_Pin_0);
}
void LEDred(void)
{
GPIO_ResetBits(GPIOB, GPIO_Pin_1);
GPIO_SetBits(GPIOB,GPIO_Pin_0);
}
void LEDgreen(void)
{
GPIO_SetBits(GPIOB, GPIO_Pin_1);
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
}
void LEDoff(void)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
GPIO_ResetBits(GPIOB,GPIO_Pin_1);
}