PIC12F675 GPIO - Ausgänge lassen sich nicht schalten nachdem der A/D eingeschalten wird

OP #2843115
Lesenswert?

Hallo,
nachdem ich den A/D-Wandler einschalte bringe ich nur mehr den Ausgang 
GPIO5 auf 1-Signal!
woran kann dies liegen?
MPLABX 1.41 mit Simulator
Gruß Ivan
1
 
2
// PIC12F675
3
int main(void)
4
{
5
    
6
    TRISIO =    0b00001001;   // GP0 als Eingang verwenden ; 0 = Output 1 = Input
7
    ANSEL =     0b01100001;    // ANS0 als Analogen Eingang ; 1 = analog 0 = digital
8
    CMCON =     0b00000111;     // Komparator aus
9
    GPIO = 0xFF;// Digital-Ausgänge gehen auf 1
10
    ADCON0 = 0b00000001; // Einschalten des A/D- Wandlers
11
    GPIO = 0xFF; // Hier geht nur mehr GPIO5 auf 1 alle anderen Ausgänge bleiben auf 0
Gast #2843358
Lesenswert?

Um GPIO zu initialisieren, müssen die erst mal auf 0x00 gesetzt werden. 
Und GPIO5 (und auch GPIO0 und GPIO3) ist als analoger Eingang definiert:

> ANSEL = 0b01100001; // ANS0 als Analogen Eingang ; 1 = analog 0 = digital
OP #2843473
Lesenswert?

danke für die Antwort..
ich habe den Code und die Kommentare noch einmal überarbeitet.. um das 
(mein)Problem besser verständlich zu machen.
Gruß Ivan
1
    TRISIO =    0b00001001;   // GPIO0 und GPIO3 als Eingang verwenden ; 0 = Output 1 = Input (Port3 kann nur Eingang sein)
2
    ANSEL =     0b01100001;    // FOSC/64 und ANS0 als Analogen Eingang ; 1 = analog 0 = digital ; ADCS=0b110 - 
3
// ANSEL bits: 7—keine Funktion=0, bit6-ADCS2=1, 5-ADCS1=1, 4-ADCS0=0, 3-ANS3=0, 2-ANS2=0, 1-ANS1=0, 0-ANS0=1, 
4
    CMCON =     0b00000111;  // Komparator aus
5
    GPIO = 0x00;  // alle Ausgänge auf 0 - alles ok
6
    GPIO = 0xFF;  // die Ausgänge GPIO5, GPIO4, GPIO2, GPIO1, gehen auf 1 - alles ok GPIO0 = Analog GPI3 = digitaler Eingang 
7
    ADCON0 = 0b00000001; // Nur Einschalten des A/D-Wandler: GPIO5 bleibt auf 1 alle anderen Ausgänge gehen auf 0- keine Ahnung wieso???
8
    GPIO = 0x00;  // alle Ausgänge auf 0 - alles ok
9
    GPIO = 0xFF;  // nur der GPIO5 geht auf 1 - GPIO4, GPIO2, GPIO1 bleiben leider auf 0- und ich verstehe nicht wieso?
Gast #2851332
Lesenswert?

>ich habe die Harware nicht aufgebaut,
>die ganze Sache funktioniert mit
>der Simulation von MPLABX1.41 nicht

Es sollte langsam bekannt sein, daß man so'n Zeug wo Interrupts und 
Echtzeitverhalten, A/D Eingänge etc.
AUF DER RICHTIGEN REALEN HW prüfen muss, mit'm Debugger, nicht mit dem 
Simulator.
Auch den Autoführerschein macht man mit richtigem Auto.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren