用户工具

站点工具


reference:language:analogreadresolution

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

reference:language:analogreadresolution [2016/01/06 08:16]
nzhu [例子]
reference:language:analogreadresolution [2017/04/07 10:03]
行 1: 行 1:
-====== 描述 ====== 
  
- 
-analogReadResolution()是用在Due 和 Zero上的Analog API的扩展. 
- 
-设置analogRead()返回值的大小(位),默认是十位(返回值介于0到1023)向后兼容AVR板. 
- 
-DUE和ZERO可以通过改变分辨率到12来使用12位的adc. 这样将会从analogRead()返回0-4096的值. 
- 
-===== 语法 ===== 
- 
- 
-analogReadResolution(bits) 
- 
-===== 参数 ===== 
- 
- 
- 
-bits:决定 analogRead()返回值的的分辨率(以位),你可以设置它为1和32,你可以设置高于12的分辨率,但是analogRead()得返回值将会进行是个近似值。细节请查看注意事项。 
-===== 返回 ===== 
- 
- 
-无. 
- 
-===== 注意 ===== 
- 
- 
-如果你设置的analogReadResolution()值高于板子的容量,则将会返回最高精度值,并且后几位以0填充。 
- 
-例如:在DUE和ZERO上使用analogReadResolution(16),你将会得到一个近似的16位的数字,其中前12位包含了真实的adc值,后四位以0填充。 
- 
-如果你设置的analogReadResolution()值低于板子的容量,adc读取的有效数据的后几位将会被抛弃。 
- 
-使用16位精度(或者任何高于实际硬件容量),以后你写的程序可以在更好的板子上自动处理更高精度的adc分辨率的设备,而不用改变原有代码。 
-=====例子 ===== 
- 
-<code cpp> 
-void setup() { 
-  // 打开串口 
-  Serial.begin(9600); ​ 
-} 
- 
-void loop() { 
-  // 以默认十位精度读取A0口输入 
-  // 发送到串口 ​ 
-  analogReadResolution(10);​ 
-  Serial.print("​ADC 10-bit (default) : "); 
-  Serial.print(analogRead(A0));​ 
- 
-  // 改变分辨率为12位,读取A0口 ​ 
-  analogReadResolution(12);​ 
-  Serial.print(",​ 12-bit : "); 
-  Serial.print(analogRead(A0));​ 
- 
-  // 改变分辨率为16位,读取A0 
-  analogReadResolution(16);​ 
-  Serial.print(",​ 16-bit : "); 
-  Serial.print(analogRead(A0));​ 
- 
-  // 改变8位分辨率,读取A0口 
-  analogReadResolution(8);​ 
-  Serial.print(",​ 8-bit : "); 
-  Serial.println(analogRead(A0));​ 
- 
-  // delay 避免独占串口 ​ 
-  delay(100); 
-} 
-</​code>​ 
reference/language/analogreadresolution.txt · 最后更改: 2017/04/07 10:03 (外部编辑)