#include "base/define.h"
#include "gpio_cfg.h"
#include "adc_cfg.h"
//#include "usartapp.h"
//#include "console_usart.h"
#include "base/delay.h"
#include "power.h"
//#include "database.h"
#include "timer_cfg.h"
#include "base/utility.h"
//#include "yecan.h"
#include "hardware/jw3425iic.h"
volatile BoartCheck_st board_st;
volatile BoardInfo_un  boardinfo_un;

void test_timer_function()
{
	static uint8_t   flag_ = 0;
	LED1_Out = flag_;
	flag_ ^= 0x01;
}

//检测小板初始化
void Ye_BoardInit(void)
{

	AdcDef_Init();
	DAC_Definit();
//	ConsoleUsart_Init();
//	YeCanInit();
	CtrlGpio_DefInit();
	DelayTimer_Init();
	TimerCount_Init();
	CurrentSampleR_Def
	I2C_init();
	delay_ms(500);
	
}
/*
 测试小板上电自检
*/
void Ye_BoardCheck(void)
{
	uint16_t aus_buf[AD_SCAN_COUNT];
	board_st.app_run_flag = 1;
	board_st.device_id = Gpio_GetDeivceAddr();
	board_st.chip_temp =  (uint16_t)(Get_Temperature()*10);
	board_st.soft_v = SoftVersion;
	board_st.hard_v = boardinfo_un.boardinfo.hard_v;
	board_st.resistor_diff = boardinfo_un.boardinfo.resistor_diff;
	//board_st.plan_id = *((uint32_t*)APP_TEST_PLAN_ADDR);
	
	
	GetADC1_Value(VCC_1V25_CH,aus_buf,AD_SCAN_COUNT);
	Bubble_Sort_u16(aus_buf,AD_SCAN_COUNT);
	board_st.v1p25_adc = aus_buf[AD_SCAN_COUNT>>1];
	
	GetADC1_Value(VCC_2V5_CH,aus_buf,AD_SCAN_COUNT);
	Bubble_Sort_u16(aus_buf,AD_SCAN_COUNT);
	board_st.v2p5_adc = aus_buf[AD_SCAN_COUNT>>1];
	
	GetADC1_Value(ADC_Channel_16,aus_buf,AD_SCAN_COUNT);
	Bubble_Sort_u16(aus_buf,AD_SCAN_COUNT);
	board_st.adc_shake = aus_buf[AD_SCAN_COUNT-1] - aus_buf[0];
	
	
	LED1_Out = 1;
	if(0 != PowerCalPrapare())
	{
		board_st.v1p25_adc = 0;
		LED1_Out = 0;
	}
	PowerCalibration_set(POWER_DEF_V,45);
	delay_ms(5);
	board_st.bus_5p5v = Power_GetHPowerV();
//	
#ifdef CHECKER_DEV
	PowerCalibration_set(260,50);
	delay_ms(100);
#else
	PowerCalibration_set(90,45);
#endif
 board_st.bus_26v = Power_GetHPowerV();
//	
	PowerCalibration_set(POWER_DEF_V,45);
	
	
}

