Hallo, ich habe heute morgen begonnen mich mit der PIC Programmierung auseinander zu setzen. Ich habe dazu MPLAP (aktuelle Version) und cc5x (aktuelle Version) installiert. Leider konnte ich zu cc5x keine Dokumentation im Netz finden, ausser einigen guten Beispielen auf cc5x.de. Soweit klappt auch alles, ich kann z.B. LED's die an PORTB angeschlossen sind leuchten lassen etc. Der Input funktioniert dafür leider gar nicht. Mit diesem Beispiel habe ich es mal getestet: #pragma chip PIC16F627 #pragma config |= 0b.1111.0010.0001 // Konfigurations-Wort void main( void) { char c; TRISB = 0b.0000.0000; c=0; while(1) { if(c) PORTB.0 = 1; if(PORTA.0) c=1; } } Leider passiert nichts, auch wenn ich einen Taster an RA0 betätige... Habe ich einen Softwarefehler gemacht? Wie müsste es richtig heißen? Schöne Grüße!
Hallo Alex ! Die PIC initialisieren die Pins, auf denen u.a. die Analog-Ports liegen, gerne als analogen Eingänge, und mit digitalen Eingängen funktioniert dann nix. Ob das beim F627 auch so ist, kann Dir das Datenblatt sagen. Im übrigen würde ich zur Sicherheit auch ein TRISA einfügen, in dem der Pin A.0 als Eingang gesetzt ist. Welche Fallen die PIC so für Einsteiger bereit halten, kann man ganz gut auf www.sprut.de nachlesen ! Gruß, Andreas P.S. Du weisst schon, dass die LED nicht wieder ausgeht, wenn Du den Taster loslässt ? ;-)
Hallo Andreas, du hattest Recht, beim Starten des PIC werden zwar alle Pin's auf Input gesetzt, allerdings steht dort ebenfalls: On RESET, the TRISA register is set to all inputs. The digital inputs are disabled and the comparator inputs are forced to ground to reduce current consumption. Ich habe jetzt vor die while-Schleife noch #asm MOVLW 0x07 ;Turn comparators off and MOVWF CMCON #endasm eingefügt und jetzt klappt es... Vielen Dank nochmal, ich frage mich nur, ob es dafür auch einen cc5x Befehl gibt...?? Schöne Grüße, Alex
Hallo Alex Zitat: Vielen Dank nochmal, ich frage mich nur, ob es dafür auch einen cc5x Befehl gibt...?? Na ja, den gibts wirklich. Ziemlich unspektakulär: CMCON = 7; Den braucht man auch für andere PIC wie 12F629. Ohne den hat man dort das selbe Problem. Thomas
Hallo Thomas, Danke, da hätte ich auch selbst drauf kommen können.... Gruß, Alex
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.