Hallo zusammen, ich möchte beim PIC18F2550 den Pin RC4 als digitalen Eingang (NICHT USB) verwenden. Das Datenblatt sagt, dass dafür folgendes eingestellt werden muss: UCONbits.USBEN = 0; UCFGbits.UTRDIS = 1; Ich habe dies so gemacht. Jedoch kann immer noch nicht über den Pin RC4 eingelesen werden. Was muss ich tun? Vielen Dank für die Hilfe!
Hi, habe jetzt mal im Datenblatt nachgeschaut. Sieht so aus als hättest du alles richtig gemacht. Zumindest das Datenblatt richtig verstanden ;) Könntest du mal den Codeausschnitt posten? Also die init von PORTC und die Stelle an der du einlesen möchtest? Gruß
Hallo Florian, anbei findest Du den C-Code. Vielen Dank für Deine Hilfe. Gruß Harald
Hallo, vielleicht den Code mal so umschreiben statt der Do-While so: while(1) { if(PORTCbits.RC5) { PORTA=0xFF; } if(!PORTCbits.RC5) { PORTA=0x00; } } Auf welchen Compiler hast Du dein Programm geschrieben? XC8? PORTA=(PORTCbits.RC5) ? 0xFF : 0x00; Hab ich noch nie gesehen! Gruß
Räum doch den Code bitte erst mal richtig auf, da steht ein Haufen Müll drin! UND schreib vernünftige Kommentare dazu.
1 | UCON = 0x00; ist doppelt |
2 | UCONbits.USBEN = 0; oh nochmal |
3 | |
4 | TRISA = 0xFF; ist doppelt |
5 | |
6 | for(;;) //for ever |
7 | {
|
8 | |
9 | PORTA = 0x00; was soll das? |
10 | PORTC = 0x00; |
11 | |
12 | LATA = 0x00; das hier ist genau das Gleiche! (warum willst du Inputs schreiben?) |
13 | LATC = 0x00; |
Wie prüfst du den Code, Debugger? <edit> Ähhh.... hast du zwei verschiedene Codes gepostet?
:
Bearbeitet durch User
Rumburak schrieb: > PORTA=(PORTCbits.RC5) ? 0xFF : 0x00; > > Hab ich noch nie gesehen! Sieht man eher nicht so oft ;-) https://de.wikibooks.org/wiki/C-Programmierung:_Ausdr%C3%BCcke_und_Operatoren#Bedingung_.3F:
Volker S. schrieb: > Rumburak schrieb: >> PORTA=(PORTCbits.RC5) ? 0xFF : 0x00; >> >> Hab ich noch nie gesehen! > > Sieht man eher nicht so oft ;-) > https://de.wikibooks.org/wiki/C-Programmierung:_Au... Ah, jetzt verstehe ich.
Harald E. schrieb: > ich möchte beim PIC18F2550 den Pin RC4 als digitalen Eingang Und wie machst du das? Du hast 3 verschiedene Quellcodes gepostet und in keinem wird RC4 abgefragt. Im Beispiel-C-Code.pdf wird RC5 statt RC4 abgefragt, in den zwei verschiedenen Versionen von ISG3400VP.C wird weder RC4 noch RC5 abgefragt. Oder habe ich was übersehen?
Harald E. schrieb: > Ich habe dies so gemacht. Jedoch kann immer noch nicht über den Pin RC4 > eingelesen werden. Hallo, kürzlich wollte auch ich RC5, b.z.w RC4 bei einem Pic16f1455 als Tasteneingang mit mit Hochziehwiderstand benutzen und hatte Probleme. Diese zwei Eingänge sind sehr speziell, da sie eigentlich als spezielle Datenleitungen für das USB konzipiert sind. Da ich alle anderen Pins als Ausgänge nutzen musste, musste ich also auch ich RC4 od. RC5 benutzen. Wenn ich mich recht erinnere, konnte ich mir dabei nur helfen, indem ich einen tiefen(c.a.1K-Ohm)Hochziehwiderstand nahm und mit einem noch deutlich kleinerem Widerstand per Taste auf GND zog. Ob das beim Pic18f2550 auch so ist? Sicherheitshalber würde ich keinen tieferen Widerstand als 200 Ohm wählen. MFG Jochen-Paul
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.