本帖最后由 gdwhwp 于 2019-3-2 11:06 编辑
做了N多款表头,发发贴与大伙一起讨论一下。。 如果有需项目接入技术支持的可随时与我联系
电路图(电源 显示 控制 采样 很清楚了)
产品图
重要代码
if(System.TS.Flag[V_ADC_TIME] == True)
{
System.TS.Flag[V_ADC_TIME] = False;
switch(System.VI_Get)
{
case 0:
ADC_FilterValue_Swich(6);
break;
case 1:
maopao(System.ADC_.ADC_Buff[CHANAL_5],System.ADC_.ADC_Count[CHANAL_5]);
break;
case 2:
V_ADC_Process(); //¼ì²âÊä³öµçѹ
break;
case 3:
SEND_SMG_V_DATA();
#if V_Soft_ADJ
if(System.V_Latch > 0 && System.V_Latch < ADJ_FACTORY_V)
{
System.LCD_SHOW_V = System.V_Latch + (ADJ_FACTORY_V-System.V_Latch)/170;
}
else
System.LCD_SHOW_V = System.V_Latch ;
#else
System.LCD_SHOW_V = System.V_Latch ;
#endif
break;
case 4:
ADC_FilterValue_Swich(5);
break;
case 5:
maopao(System.ADC_.ADC_Buff[CHANAL_6],System.ADC_.ADC_Count[CHANAL_6]);
//
break;
case 6:
I_ADC_Process();
System.I = System.ADJ_I_Buff ;
SEND_SMG_I_DATA();
System.LCD_SHOW_A = System.I_Latch;
System.FV = System.V_Latch;
System.W_Latch = System.I_Latch;
System.W_Latch = System.FV * System.W_Latch/10;
System.LCD_SHOW_W = System.W_Latch;
break;
default: System.VI_Get = 0;
break;
}
if(System.VI_Get<6)
System.VI_Get ++;
else
System.VI_Get = 0;
}
分时处理数据。。比较重要。。。
还有一些数据处理的和校正等方法都是比较关键的,调试中你遇到漂移和不准的情况是很正常的,一步一步的找。。。问题总会找到。。就怕你懒。。。
|