diff --git a/platform/targets/MD-UV380/platform.c b/platform/targets/MD-UV380/platform.c index 10ed5d28..7161ec40 100644 --- a/platform/targets/MD-UV380/platform.c +++ b/platform/targets/MD-UV380/platform.c @@ -17,46 +17,103 @@ * along with this program; if not, see * ***************************************************************************/ -#include -#include "platform.h" +#include +#include #include "hwconfig.h" -#include "gpio.h" void platform_init() { - /* - * Configure TIM8 for backlight PWM: Fpwm = 100kHz, 8 bit of resolution - * APB2 freq. is 84MHz, then: PSC = 327 to have Ftick = 256.097kHz - * With ARR = 256, Fpwm is 100kHz; - */ - RCC->APB2ENR |= RCC_APB2ENR_TIM8EN; - TIM8->ARR = 255; - TIM8->PSC = 327; - TIM8->CNT = 0; - TIM8->CR1 |= TIM_CR1_ARPE; /* LCD backlight is on PC6, TIM8-CH1 */ - TIM8->CCMR1 |= TIM_CCMR1_OC1M_2 - | TIM_CCMR1_OC1M_1 - | TIM_CCMR1_OC1PE; - TIM8->CCER |= TIM_CCER_CC1E; - TIM8->BDTR |= TIM_BDTR_MOE; - TIM8->CCR1 = 0; - TIM8->EGR = TIM_EGR_UG; /* Update registers */ - TIM8->CR1 |= TIM_CR1_CEN; /* Start timer */ + /* Configure GPIOs */ + gpio_setMode(GREEN_LED, OUTPUT); + gpio_setMode(RED_LED, OUTPUT); - /* Configure backlight GPIO, TIM8 is on AF3 */ - gpio_setMode(LCD_BKLIGHT, ALTERNATE); - gpio_setAlternateFunction(LCD_BKLIGHT, 3); + gpio_setMode(LCD_BKLIGHT, OUTPUT); + gpio_clearPin(LCD_BKLIGHT); } void platform_terminate() { - /* Shut off backlight */ - gpio_setMode(LCD_BKLIGHT, OUTPUT); + /* Shut down backlight */ gpio_clearPin(LCD_BKLIGHT); + + gpio_clearPin(GREEN_LED); + gpio_clearPin(RED_LED); + RCC->APB2ENR &= ~RCC_APB2ENR_TIM8EN; } +float platform_getVbat() +{ + return 0.0f; +} + +float platform_getMicLevel() +{ + return 0.0f; +} + +float platform_getVolumeLevel() +{ + return 0.0f; +} + +uint8_t platform_getChSelector() +{ + return 0.0f; +} + +void platform_ledOn(led_t led) +{ + switch(led) + { + case GREEN: + gpio_setPin(GREEN_LED); + break; + + case RED: + gpio_setPin(RED_LED); + break; + + default: + break; + } +} + +void platform_ledOff(led_t led) +{ + switch(led) + { + case GREEN: + gpio_clearPin(GREEN_LED); + break; + + case RED: + gpio_clearPin(RED_LED); + break; + + default: + break; + } +} + +void platform_beepStart(uint16_t freq) +{ + (void) freq; +} + +void platform_beepStop() +{ + +} + void platform_setBacklightLevel(uint8_t level) { - TIM8->CCR1 = level; + if(level > 0) + { + gpio_setPin(LCD_BKLIGHT); + } + else + { + gpio_clearPin(LCD_BKLIGHT); + } }