pic - PIC16 不更新 ADC 值
问题描述
有人可以帮助解释为什么我的代码或设置没有更新 10K 电位器的 ADC 值吗?
我使用 MPLAB XPRESS PIC16F18877 板和 MPLAB MCC 来生成代码。复位电路板后,电压结果只会更新一次。
主程序
#include "mcc_generated_files/mcc.h"
void display_result(float v);
void main(void) {
adc_result_t convResult = 0;
float v = 0;
// initialize the device
SYSTEM_Initialize();
ADCC_StartConversion(POT);
while (1) {
// Convert ADC values
while (!ADCC_IsConversionDone());
convResult = ADCC_GetConversionResult();
v = convResult * 3.3 / 1023;
// send the value to display
display_result(v);
}
}
void display_result(float v) {
if (v > 1.65) {
LED_SetHigh();
} else {
LED_SetLow();
}
}
解决方案
这个问题通过调用来解决
ADCC_StartConversion(POT);
在 while(1) 循环中。
推荐阅读
- javascript - 我想停止提交整个页面并仅使用 javascript 提交我的表单
- reactjs - 为什么在 NextJS 中首次渲染时 withRouter router.query 为空?
- openapi-generator - 如何使用 openAPI Generator 和 Maven 跳过支持和元数据文件的生成?
- python - 查询数据端显示在表格html烧瓶中
- java - 如何将具有相同前缀uri的映射重载到Spring中的不同方法?
- python - 更改 QTreeView 选择时触发的适当事件是什么?
- c# - 在 Skype-for-business(Lync) 中打开用户
- php - 如何在我的 Symfony API 平台上使用 Behat 安装 Bearer 令牌
- php - 插入数据后如何更新和删除
- tuples - 如何为 OpenAPI 中的每个索引(即元组)定义一个带有具体项目定义的 JSON 数组?