[En-Nut-Discussion] AD conversion resolution?

Gerwin Voorsluijs g.m.voorsluijs at wanadoo.nl
Thu Dec 15 10:35:54 CET 2005


Hi Alexander,

I am slowly turning a potentionmeter that is linked to an external power 
source. To my knowledge that gives a continuously varying voltage and 
therefore the AD readout should show the 10 bit resolution plus possibly 
a little jitter.

Alexander Baranov wrote:
> Hello.
> Do you mean that you control the input voltage steps and they are precisely
> equal?
> 
> ----- Original Message ----- 
> From: "Gerwin Voorsluijs" <g.m.voorsluijs at wanadoo.nl>
> To: <en-nut-discussion at egnite.de>
> Sent: Wednesday, December 14, 2005 12:50 PM
> Subject: [En-Nut-Discussion] AD conversion resolution?
> 
> 
> 
>>Dear all,
>>
>>I'm trying to use the 10bit AD conversion of the Ethernut and with some
>>trial and error I've managed to get some data out of it. The values I
>>get seem OK, but I'm a little disturbed by the fact that I don't get a
>>continuously climbing value out of it when I raise the voltage slowly.
>>For example, for the purpose I am using it (which I am sure has
>>continuous voltages!) I get the following set of "steps":
>>
>>156   158   159   176   177   184   188   192   193   195   199   206
>>207   224   225   227   231   240   241   248   252   254   255   304
>>312   316   318   319   327   335   348   352
>>
>>I know I am not using the full range of 0-5 V (I measured with a
>>"normal" voltmeter around 0.8-1.7 V so that seems OK)
>>
>>Does anyone have any idea what is going on? Lemme include the little
>>piece of code I used:
>>
>>#include <cfg/crt.h>    /* Floating point configuration. */
>>#include <string.h>
>>#include <stdio.h>
>>#include <io.h>
>>#include <dev/board.h>
>>#include <sys/timer.h>
>>#include <dev/adc.h>
>>
>>int main(void)
>>{
>>     u_long baud = 115200;
>>     FILE *uart;
>>
>>     u_char ad_chk;
>>     u_short adc_value;
>>     NutRegisterDevice(&DEV_UART, 0, 0);
>>     uart = fopen(DEV_UART_NAME, "r+");
>>     _ioctl(_fileno(uart), UART_SETSPEED, &baud);
>>
>>     ADCInit();
>>     ADCSetRef(AVCC);
>>     ADCSetMode(SINGLE_CONVERSION);
>>     ADCSetChannel(0);
>>
>>     for (;;)
>>{
>>ADCStartConversion();
>>while (ADCRead(&adc_value))
>>    NutThreadYield();
>>fprintf(uart, "%i ", (int) adc_value);
>>     }
>>}
>>
>>
>>_______________________________________________
>>En-Nut-Discussion mailing list
>>En-Nut-Discussion at egnite.de
>>http://www.egnite.de/mailman/listinfo.cgi/en-nut-discussion
>>
>>
> 
> 
> 
> _______________________________________________
> En-Nut-Discussion mailing list
> En-Nut-Discussion at egnite.de
> http://www.egnite.de/mailman/listinfo.cgi/en-nut-discussion
> 
> 




More information about the En-Nut-Discussion mailing list