103 lines
2.2 KiB
C
103 lines
2.2 KiB
C
#ifndef UDCCD_R8_BSP_H_
|
|
#define UDCCD_R8_BSP_H_
|
|
|
|
/**** Includes ****/
|
|
#include <stdint.h>
|
|
#include "../common/level.h"
|
|
|
|
/**** Public definitions ****/
|
|
//ADC definitions
|
|
typedef enum {
|
|
ADC_ICOIL = 0x00,
|
|
ADC_UCOIL = 0x01,
|
|
ADC_UBAT = 0x02,
|
|
ADC_IBAT = 0x03,
|
|
ADC_POT = 0x04,
|
|
ADC_MODE = 0x05,
|
|
ADC_TEMP = 0x08,
|
|
ADC_INTREF = 0x0E,
|
|
ADC_GND = 0x0F
|
|
} adcCh_t;
|
|
|
|
typedef enum {
|
|
ADC_DIV2 = 0x01,
|
|
ADC_DIV4 = 0x02,
|
|
ADC_DIV8 = 0x03,
|
|
ADC_DIV16 = 0x04,
|
|
ADC_DIV32 = 0x05,
|
|
ADC_DIV64 = 0x06,
|
|
ADC_DIV128 = 0x07
|
|
} adcDiv_t;
|
|
|
|
//Timer definitions
|
|
typedef enum {
|
|
TIM_DIV1 = 0x01,
|
|
TIM_DIV8 = 0x02,
|
|
TIM_DIV64 = 0x03,
|
|
TIM_DIV256 = 0x04,
|
|
TIM_DIV1024 = 0x05
|
|
} timerDiv_t;
|
|
|
|
typedef enum {
|
|
PWM_COIL = 'A',
|
|
PWM_LED = 'B'
|
|
} pwmCh_t;
|
|
|
|
typedef enum {
|
|
SPEED_1 = 3,
|
|
SPEED_0 = 4
|
|
} speedCh_t;
|
|
|
|
typedef struct {
|
|
adcDiv_t adc_clk_prescaler;
|
|
uint8_t adc_auto_wake;
|
|
timerDiv_t pwm_timer_prescaler;
|
|
uint16_t pwm_timer_top;
|
|
timerDiv_t freq_timer_prescaler;
|
|
uint16_t uart_prescaler;
|
|
uint8_t systick_timer_top;
|
|
timerDiv_t systick_timer_prescaler;
|
|
uint8_t disable_unused;
|
|
uint8_t en_watchdog;
|
|
} hwConfig_t;
|
|
|
|
/**** Public function declarations ****/
|
|
void HAL_Init_Min(hwConfig_t* hwCfg);
|
|
void HAL_Init_Extra(hwConfig_t* hwCfg);
|
|
|
|
level_t HAL_ReadLvl_Handbrake(void);
|
|
level_t HAL_ReadLvl_Brake(void);
|
|
level_t HAL_ReadLvl_Dimm(void);
|
|
level_t HAL_ReadLvl_BtnUp(void);
|
|
level_t HAL_ReadLvl_BtnDown(void);
|
|
level_t HAL_ReadLvl_BtnMode(void);
|
|
level_t HAL_ReadLvl_HandbrakePull(void);
|
|
level_t HAL_ReadLvl_CoilLow(void);
|
|
level_t HAL_ReadLvl_CoilHigh(void);
|
|
level_t HAL_ReadLvl_LedsPwm(void);
|
|
level_t HAL_ReadLvl_Speed0(void);
|
|
level_t HAL_ReadLvl_Speed1(void);
|
|
level_t HAL_ReadLvl_SpeedPull(void);
|
|
|
|
void HAL_SetPull_Handbrake(level_t lvl);
|
|
void HAL_SetPull_Speed(level_t lvl);
|
|
|
|
void HAL_ADC_Wake(void);
|
|
void HAL_ADC_Sleep(void);
|
|
uint16_t HAL_ADC_Read(adcCh_t ch);
|
|
|
|
void HAL_Coil_SetLowSide(uint8_t on);
|
|
void HAL_Coil_SetPWM(uint8_t percent);
|
|
void HAL_Coil_SetPWM16b(uint16_t value);
|
|
|
|
void HAL_LEDS_Set(uint8_t image);
|
|
uint8_t HAL_LEDS_Get(void);
|
|
void HAL_LEDS_SetPWM(uint8_t percent);
|
|
|
|
void HAL_PWM_Wake(void);
|
|
void HAL_PWM_Sleep(void);
|
|
void HAL_PWM_SetDuty16b(pwmCh_t ch, uint16_t value);
|
|
void HAL_PWM_SetDuty100(pwmCh_t ch, uint8_t percent);
|
|
|
|
#endif /* UDCCD_R8_BSP_H_ */
|