Forum: Mikrocontroller und Digitale Elektronik PIC 16F877A ADC


von gast (Gast)


Lesenswert?

Hallo

Beschäftige mich jetz mittlerweile seit einigen Tagen
mit dem Programmieren von uC. Heute der erste Erfolg
--> Die LEDs haben geleuchtet ;-)

nun mein 2. Projekt das ich auf meinen PIC16F877A
schreiben möchte.

An einem PIN A0 soll ein analoger Wert 0-5V eingelesen werden
und je nachdem Was bei der Wandlung raus kommt soll er
einen Pin an PortC high schalten.

Dazu mein Programm das nicht funktioniert.
1
void main (void)
2
{
3
  unsigned long int ADC_VALUE;
4
5
  TRISC = 0b00000000;
6
  ADCON1  = 0b10001110;
7
  ADCON0  = 0b11000001;
8
  
9
  while (1)
10
  {    
11
12
    ADIE  = 0;                          
13
    ADIF  = 0;                          
14
    ADRESL  =  0;             
15
    ADRESH  =  0;              
16
17
     GO = 1;
18
                                     
19
     while(!ADIF) continue;               
20
21
    ADC_VALUE  = ADRESL;            
22
    ADC_VALUE  += (ADRESH << 8);          
23
24
    if (ADC_VALUE > 500)
25
    {
26
      
27
      PORTC |= 0b00010000;
28
      PORTC &= 0b11110111;
29
    }
30
    else
31
    {
32
      PORTC |= 0b00001000;
33
      PORTC &= 0b11101111;
34
    }
35
  }
36
37
  
38
}

Denke das sollte funktioneren, tuts aber nicht.

Könnte sich das vl mal kurz jmd ansehen?
Habe selbst den verdacht das es was mit der clk zu tun
haben könnte. Bitte um Ratschläge

Danke.
mfg PIC-Programmer ;-)

von gast (Gast)


Lesenswert?

Sorry hab sofort nachdem ichs reingestellt hab einen Fehler
endeckt g. TRISA ist nicht konfiguriert.

Endeckt ihr noch etwas???

von gast (Gast)


Lesenswert?

Ach ja und noch was.
Es wird keiner der beiden PINS von PortC gesetzt.
das heißt er hat das Problem weiter vorne, denn ansonsten müsste
er zumindest ins else!

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.