完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
zmain_vdd_check()函数分析 源码: static void zmain_vdd_check( void ) { uint8 vdd_passed_count = 0; bool toggle = 0; while ( vdd_passed_count < MAX_VDD_SAMPLES ) { if ( HalAdcCheckVdd (ZMAIN_VDD_LIMIT) ) { vdd_passed_count++; MicroWait (10000); } else { vdd_passed_count = 0; MicroWait (50000); MicroWait (50000); } if (vdd_passed_count == 0) { if ((toggle = !(toggle))) HAL_TOGGLE_LED1(); else HAL_TOGGLE_LED2(); } } HAL_TURN_OFF_LED1(); HAL_TURN_OFF_LED2(); } 这个函数的作用是对于工作电压的检测。 while ( vdd_passed_count < MAX_VDD_SAMPLES ){} MAX_VDD_SAMPLES = 3 最大的标准电压 vdd_passed_count初始化为0,所以进入while()循环,执行条件语句判断HalAdcCheckVdd()返回值 HalAdcCheckVdd()函数源码: 传入参数ZMAIN_VDD_LIMIT = 0x04 bool HalAdcCheckVdd (uint8 limit) { uint16 value; uint8 tmpADCCON3 = ADCCON3; ADCIF = 0; ADCCON3 = (HAL_ADC_REF_125V | HAL_ADC_DEC_064 | HAL_ADC_CHN_VDD3); while ( !ADCIF ); value = ADCL; value |= ((uint16) ADCH) << 8; ADCCON3 = tmpADCCON3; return ( value >= HalAdcVddLimit[limit] ); } uint8 tmpADCCON3 = ADCCON3; ADCCON3--> ADC控制3寄存器 此句代码是对ADC控制3寄存器的内容做一个保存。 ADCIF = 0; 可以知道将此寄存器清零是为了清楚ADC中断的标志。 ADCCON3 = (HAL_ADC_REF_125V | HAL_ADC_DEC_064 | HAL_ADC_CHN_VDD3) 等效于ADCCON3 = 0X00 | 0X00 | 0X0F = 0X0F,可以根据前面ADCCON3 的内容来判定0x0f所对应的作用 while ( !ADCIF ); 通过对ADCIF的值来判断是否转换完成 value = ADCL; value |= ((uint16) ADCH) << 8; ADC的转换结果就放在 ADCL和ADCH里面,所以value的值就是存放ADC转换的最终结果。 ADCCON3 = tmpADCCON3; 将前面保存的ADCCON3的内容返回到ADCCON3 寄存器里面 return ( value >= HalAdcVddLimit[limit] ) 返回值,HalAdcVddLimit[limit]存储的是温度的限定值,根据传入的实参来从数组中查找响应的电压值,然后返回实际电压值和数组中电压值大小比较的结果,由此来判断实际电压值与参考电压值的关系。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
物联网工程师必备:怎么选择不同的无线连接技术,本指南帮你忙!
3212 浏览 1 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】WIFI功能测试
3864 浏览 0 评论
【DFRobot TinkerNode NB-IoT 物联网开发板试用连载】Arduino的替代SublimeText3+STino
3371 浏览 0 评论
使用端口扩展器轻松高效地向IIoT端点添加具有成本效益的子节点
3918 浏览 1 评论
20503 浏览 11 评论
模组有时候复位重启后输出日志为“REBOOT_CAUSE_SECURITY_PMU_POWER_ON_RESET”的原因?
623浏览 2评论
783浏览 2评论
862浏览 1评论
980浏览 1评论
316浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-14 02:17 , Processed in 0.739167 second(s), Total 70, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号