2020-04-17 15:55:14 +08:00
|
|
|
/*
|
|
|
|
* navikit.c
|
|
|
|
*
|
|
|
|
* Created on: Apr 17, 2020
|
|
|
|
* Author: oarap
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#include "navikit.h"
|
|
|
|
NaviKit_t NaviKit;
|
2020-04-27 16:58:16 +08:00
|
|
|
void NaviKit_var_init()
|
|
|
|
{
|
2020-07-15 18:26:22 +08:00
|
|
|
NaviKit.sys.sta = shutdown;
|
2020-08-05 19:22:37 +08:00
|
|
|
NaviKit.sys.next_sta = shutdown;
|
2020-04-27 16:58:16 +08:00
|
|
|
}
|
2020-08-25 19:33:15 +08:00
|
|
|
|
|
|
|
void Beep(uint32_t time_ms)
|
|
|
|
{
|
|
|
|
HAL_GPIO_WritePin(SYS_BUZZ_CTL_GPIO_Port,SYS_BUZZ_CTL_Pin, GPIO_PIN_RESET);
|
|
|
|
HAL_Delay(time_ms>>1);
|
|
|
|
HAL_GPIO_WritePin(SYS_BUZZ_CTL_GPIO_Port,SYS_BUZZ_CTL_Pin, GPIO_PIN_SET);
|
|
|
|
HAL_Delay(time_ms>>1);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
|
|
|
|
{
|
|
|
|
if(hadc->Instance == ADC1)
|
|
|
|
{
|
2020-08-26 12:31:24 +08:00
|
|
|
NaviKit.pmb.out_24v_div16 = (float)((NaviKit.pmb.adc[0]*16.0) / 1200.0);
|
|
|
|
NaviKit.pmb.out_5v_div8 = (float)((NaviKit.pmb.adc[1]*8.0 ) / 1200.0);
|
|
|
|
NaviKit.pmb.out_12v_div8 = (float)((NaviKit.pmb.adc[2]*8.0 ) / 1200.0);
|
|
|
|
NaviKit.pmb.bkp_bat_div8 = (float)((NaviKit.pmb.adc[3]*8.0 ) / 1200.0);
|
|
|
|
NaviKit.pmb.main_pwr_div16 = (float)((NaviKit.pmb.adc[4]*16.0) / 1200.0);
|
2020-08-25 19:33:15 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
|
|
|
{
|
|
|
|
if(GPIO_Pin == SOM_SHUTDOWN_REQ_Pin)
|
|
|
|
{
|
|
|
|
if(HAL_GPIO_ReadPin(SOM_SHUTDOWN_REQ_GPIO_Port, SOM_SHUTDOWN_REQ_Pin)==GPIO_PIN_SET)
|
|
|
|
{//Rising edge trigger
|
|
|
|
NaviKit.som.shutdown_req = true;
|
|
|
|
if(NaviKit.sys.sta == runing)
|
|
|
|
{
|
|
|
|
NaviKit.sys.next_sta = shutdown;
|
|
|
|
printf("enter shutdown mode... \n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(HAL_GPIO_ReadPin(SOM_SHUTDOWN_REQ_GPIO_Port, SOM_SHUTDOWN_REQ_Pin)==GPIO_PIN_RESET)
|
|
|
|
{//falling edge trigger
|
|
|
|
NaviKit.som.shutdown_req = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
else if(GPIO_Pin == SYS_POWER_BTN_Pin)
|
|
|
|
{
|
|
|
|
if(HAL_GPIO_ReadPin(SYS_POWER_BTN_GPIO_Port, SYS_POWER_BTN_Pin)==GPIO_PIN_SET)
|
|
|
|
{//Rising edge trigger
|
|
|
|
NaviKit.sys.power_btn = true;
|
|
|
|
printf("power_btn pushed \n");
|
|
|
|
}
|
|
|
|
if(HAL_GPIO_ReadPin(SYS_POWER_BTN_GPIO_Port, SYS_POWER_BTN_Pin)==GPIO_PIN_RESET)
|
|
|
|
{//falling edge trigger
|
|
|
|
NaviKit.sys.power_btn = false;
|
|
|
|
printf("power_btn released \n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if(GPIO_Pin == SYS_CUSTOM_BTN_Pin)
|
|
|
|
{
|
|
|
|
if(HAL_GPIO_ReadPin(SYS_CUSTOM_BTN_GPIO_Port, SYS_CUSTOM_BTN_Pin)==GPIO_PIN_SET)
|
|
|
|
{//Rising edge trigger
|
|
|
|
NaviKit.sys.custom_btn = false;
|
|
|
|
printf("custom_btn released \n");
|
|
|
|
}
|
|
|
|
if(HAL_GPIO_ReadPin(SYS_CUSTOM_BTN_GPIO_Port, SYS_CUSTOM_BTN_Pin)==GPIO_PIN_RESET)
|
|
|
|
{//falling edge trigger
|
|
|
|
NaviKit.sys.custom_btn = true;
|
|
|
|
printf("custom_btn pushed \n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|