This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
大家好、
我有一些奇怪的事件,我无法理解为什么会发生
我有一个外部 ADC (HX711)。
我得到 的数字大约为8561023、这很好
当我将答案除以100 (85610)时、我会得到不稳定的结果(有时数字为8561023、有时为14701165等非常大的数字)
我认为时间是问题的、所以我将延迟设置为2500ms、它返回 的数字大约 为8561023、这是很好的
但我尝试了另一种方法(可能是算术方法)、所以我将除法设置为另一个参数(以 任何方式都未连接到 ADC 响应)、 数字大约 为8561023
例如、
WT_CURR =((long) bitbang_data_in ()) -->为我提供了良好的响应
WT_CURR =((long) bitbang_data_in ())/100;--> 为我提供错误响应
WT_CURR =((long) bitbang_data_in ()))/100;
__DELAY_CYCLES (2500);--> 为我提供了良好的响应
WT_CURR =((long) bitbang_data_in ());
WT_ZERO /= 100; --> 为我提供了良好的响应
bitbang_data_in 是一个从 ADC 获取数据的函数。
如何在不发生延迟的情况下使 wt_CURR 偏离100?
我希望我能说明我的问题
谢谢你
您的实验不一定证明问题是除法。 您是否尝试了以下代码、连续三次获得了良好的结果?
WT_curr1 =((long) bitbang_data_in ());
WT_zero1 = wt_curr1/100;
WT_curr2 =((long) bitbang_data_in ());
WT_zero2 = wt_curr2/100;
WT_curr3 =((long) bitbang_data_in ());
WT_zero3 = wt_curr3/100;
请注意、我稍微修改了代码。