我一直在深入阅读无数的互联网论坛和页面,试图找到这个问题的答案,但一直没有运气,所以我们在这里。作为参考,我正在使用A/Dconverter,我正在使用插入地和5V的可变电阻改变A/Dconverter的值。所以当我写我的C代码时,如果我使用一个有符号的整数——这个整数是模拟值的值来进行转换——这个值会在零的两边自动分割吗?例如,假设我有一个8位的整数,我使用signed int。因为我使用的是有符号整型,我自动得到的值是0到+255之间的任何地方,还是当我移动电阻上的雨刷时,我应该自动收到一个在-128到+127之间的任何地方的值?
欢迎来到stackoverflow!这似乎是一个可以轻松测试的小细节。然而,我检查过的大多数教程现在都使用'int'而不是'unsigned int'。其中一个教程是这样说的:
"返回并存储在x中的值将是0到1023之间的值。Arduino有一个10位ADC(2^10 = 1024)。我们将这个值存储到int类型中,因为x比一个字节所能容纳的(8位)大(10位)。">
这让我相信值将在0-X之间的某个地方,取决于可用的位数。但正如我所说,这将很容易测试。
让我这样开始:8位整数包含8位。28是256,所以一个8位整数可以容纳256个可能的值。在-128到127(包括-128)之间有256个可能的值。
所以,你应该期待的值范围从-128到127,而不是0到255