case 1:
{
for(i = 0; i < 20000; i++);
DAC_Value = 0x2e8;
DAC_WriteData(DAC0, DAC_Value, 0);
adc_change_input_ch(4);
ADC0_get_send_result();
adc_change_input_ch(6);
ADC0_get_send_result();
adc_change_input_ch(5);
sample = ADC0_get_result();
if(sample > 0x600 )
{
for(i = 0; i < 200; i++);
adc_change_input_ch(5);
sample = ADC0_get_result();
if(sample > 0x600 )
{
working_satae = 2;
}
}
break;
}
case 2:
{
DAC_Enable(DAC0, 0, 1);
for(i = 0; i < 20000; i++);
DAC_Value = 0x2e8;
DAC_WriteData(DAC0, DAC_Value, 0);
adc_change_input_ch(4);
ADC0_get_send_result();
adc_change_input_ch(6);
ADC0_get_send_result();
adc_change_input_ch(5);
sample = ADC0_get_result();
if(sample < 0xd0 )
{
for(i = 0; i < 20000; i++);
adc_change_input_ch(5);
sample = ADC0_get_result();
if(sample < 0xd0 )
{
GPIO_PinOutSet(gpioPortA, 8);
GPIO_PinModeSet(gpioPortE, 13, gpioModePushPullDrive, 1);
GPIO_PinOutSet(gpioPortE, 13);
DAC_Value = 0xfff;
DAC_WriteData(DAC0, DAC_Value, 0);
GPIO_PinOutClear(gpioPortA, 9);
working_satae = 3;
}
else
{
GPIO_PinOutClear(gpioPortA, 8);
GPIO_PinOutSet(gpioPortA, 9);
GPIO_PinOutClear(gpioPortE, 13);
GPIO_PinModeSet(gpioPortE, 13, gpioModeInput, 0);
}
}
break;
}//case 1
case 3:
{
DAC_Enable(DAC0, 0, 1);
for(i = 0; i < 20000; i++);
adc_change_input_ch(4);
ADC0_get_send_result();
adc_change_input_ch(6);
ADC0_get_send_result();
adc_change_input_ch(5);
sample = ADC0_get_result();
if(sample > 0x7a0)
{
for(i = 0; i < 20000; i++);
//adc_change_input_ch(5);
sample = ADC0_get_result();
if(sample > 0x780)
{
working_satae = 1;
GPIO_PinOutClear(gpioPortA, 8);
GPIO_PinOutSet(gpioPortA, 9);
GPIO_PinOutClear(gpioPortE, 13);
GPIO_PinModeSet(gpioPortE, 13, gpioModeInput, 0);
}
}
break;
}//case 2
}
}
}
代码上传到githbub了,怕你们看不到,特意把这行大号字体标红https://github.com/posystorage/USB-voltmeter
最后的口头禅,壁虎手册这么好看,你们还不来玩
最后的最后,说下这个usb小表后期的改进计划
0、如果有一定数量的坛友对这个项目感兴趣或者也想玩一发的,我会画pcb并把这货做成个产品级别的东西,如果没有,那项目就到这了,我也玩够了,壁虎还有其他好玩的呢。
如果项目继续,几方面计划
1、增加显示装置,估计会设计成数码管与oled兼容款pcb,低端数码管,高大上oled
2、现在快速充电协议那么多,除了qc2.0还有qc3.0、mtk-pe、海思快充、蓝绿大厂的快充等等等等。多支持几个是比较好玩的,也是大家喜闻乐见的。但是这有前提,首先要有资料,协议资料这还是比较麻烦的,很难找。还有就是要有对应的实验样品,快充充电头都比较贵,一个40-50的样子有些估计还不止,我一穷学生,还是搞不起这么多快充头。所以如果团购的话,就算PCB可能很便宜,就几毛一片,平摊这些费用后,估计要3-5元的一小片样子,先说明。
3、取样电阻由100毫欧改成10毫欧,然后配一枚运放。
4、原始数据要处理,平滑,校准偏差什么的
5、整个充电过程数据记录到单片机内部。这货有128k的程序空间,现在就用了7k的大小,最终完成可以最多用四分之一,后面剩余的大量空间可以记录充电过程数据,当然也会有专门的上传机制什么的,传到电脑可分析,这个再说。
就这些,欢迎砸m币
@zty615 坛友的作品:不用程序 只用通用零件装出QC2.0诱骗器,公布网络上你搜不出来的技术细节(完美完结):http://bbs.mydigit.cn/read.php?tid=1734268
(责任编辑:admin) |