Forum: Mikrocontroller und Digitale Elektronik ADC-10Bit zeigt nur bis 255 an


von Bla B. (byakko)


Lesenswert?

Guten Tag,

kann mir jemand verraten wieso der ADC nur bis 255 anzeigt obwohl ein 10 
Bit AD Wandler ausgewählt wird?
1
#include <16F877.h>
2
#device adc=10
3
#include "build/Display.c"
4
5
#fuses HS,NOWDT,NOPROTECT,NOLVP
6
#use delay(clock=20000000)
7
8
9
#define RESET_BUTTON    PIN_d0
10
11
12
13
void main() {
14
    //Variable
15
    unsigned int value;
16
    //Initalisieren
17
     lcd_init();
18
    setup_adc_ports(RA0_ANALOG);
19
    setup_adc(ADC_CLOCK_INTERNAL);
20
    set_adc_channel(0);
21
22
    //Read ADC
23
    
24
    //Display
25
   while(TRUE){
26
       value=read_adc();
27
28
                //      lcd_putc("\fHello World");
29
                printf(lcd_putc,"   %u  ",value);
30
                delay_ms(500);
31
                }
32
}

danke schon mal

von Christian (Gast)


Lesenswert?

Ist ein unsigned int auf deinem Mikrocontroller vielleicht nur 8 Bit 
groß ?

von Peter II (Gast)


Lesenswert?

> #include "build/Display.c"

macht man nicht!

> #use delay(clock=20000000)
sieht merkwürdig aus


> read_adc()
wo ist diese funktion?

von Bla B. (byakko)


Lesenswert?

Danke erstmal für deine Antwort.

Das sind vordefinierte Funktionen von CCS.

Sorry, hätte dazu schreiben sollen was für ein Compiler ich benutze.

von Bla B. (byakko)


Lesenswert?

Christian schrieb:
> Ist ein unsigned int auf deinem Mikrocontroller vielleicht nur 8 Bit
> groß ?

Danke, mein Compiler sieht uint als 8bit Variable, vergesse immer wieder 
das jeder Compiler anders interpretiert...jetzt läuft es mit:

int16 value;

von chris (Gast)


Lesenswert?

wird dann auch ADCH ausgelesen bzw vielleicht was in der ausgaberoutine 
falsch?

von Christian (Gast)


Lesenswert?

Bla Blub schrieb:
> Christian schrieb:
>> Ist ein unsigned int auf deinem Mikrocontroller vielleicht nur 8 Bit
>> groß ?
>
> Danke, mein Compiler sieht uint als 8bit Variable, vergesse immer wieder
> das jeder Compiler anders interpretiert...jetzt läuft es mit:
>
> int16 value;

Das ist der Grund warum ich bei den Atmegas auch immer uint8_t etc. 
schreibe.

Gruß

Christian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.