PIC18F2550 digitaler Eingang RC4

OP #4664259
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!
#4664339
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ß
Gast #4664522
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ß
#4664523
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?
Gast #4666731
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.