Forum: Mikrocontroller und Digitale Elektronik Problem mit ADC


von Thomas (Gast)


Lesenswert?

Hallo
Ich habe ein Programm geschrieben das nicht funktioniert.
Ich will das eine LED leuchtet wenn das Poti weniger als die Hälfte 
aufgedreht ist sonst soll die LED nicht leuchten.

Ich verwende den dsPIC33FJ256MC710A, das dsPICDEM MCLV Development 
Board, als Software MPLAB X IDE und als Compiler den PCD Compiler von 
CCS.

Könnte mir bitte wer sagen wo der Fehler liegt?
1
#include <33FJ256MC710A.h>
2
#include <stdio.h>
3
#include <stdlib.h>
4
5
#fuses XT,NOWDT
6
#use delay(clock=8000000)
7
8
#define LED PIN_E1
9
10
void main()
11
{
12
    set_tris_e(0);
13
    int16 x;
14
    setup_adc_ports(sAN8);
15
    setup_adc(ADC_CLOCK_DIV_8);
16
    set_adc_channel(0);
17
    delay_us(20);
18
    read_adc();
19
20
    while(1)
21
    {
22
        x=read_adc();
23
        if(x<0.5)
24
        {
25
            output_high(LED);
26
        }
27
        else
28
        {
29
            output_low(LED);
30
        }
31
    }
32
}
lg
Thomas

von Peter II (Gast)


Lesenswert?

Ich habe zwar keine Ahnung von dem dsPIC33FJ256MC710A ..

int16 x;

if(x<0.5)

wie soll denn eine Ganzzahl sinnvoll kleiner als 0.5 werden? Die Meisten 
ADC liefert einfach eine zahl von 0 - (2^x). Damit würde deine Bedingung 
nur bei 0 anschlagen, was vermutlich nicht passiert.

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.