PIC18F4550 LATA mit PORTA nicht auslesbar?

Gast #6166271
Lesenswert?
• ▲
▼
Hallo

Ich habe eine Frae zum setzen von Port PIC's (18F4550  mit XC8 
Compiler). An sich habe ich einige Erfahrung, aber das hier will mir 
nicht in den Kopf. Es geht um die berüchtigten Funktionsunterschiede der 
LATA und PORTA Register.

Im untenstehenden Code wird das PORTA Register bei der | Operation 
gelesen. Aber offenbar wird dort an Bitposition 1 ein low gelesen, 
obwohl ich den Port auf high gesetht habe.

1
TRISA = 0x00;        // Alles Ausgänge
2
LATA = 0x02;         // Setzt Bit 1
3
LATA = PORTA | 0x01; // Setzt Bit 0, aber löscht Bit 1. Warum??

Ich weiss, die letzte Zeile ist ein praxisfremder Müll. Besser wäre 
LATA|= 0x01; Aber ich will einfach verstehen, was da passiert.

Ist es wirklich so, dass ein PORT-Bit immer als low gelesen wird, wenn 
der Tristate auf Ausgang geschaltet wird? Liest nicht das PORT-Bit den 
Aushgang zurück, der durch das LAT-Bit gesetzt wurde?

LATA verursacht doch ein high am Pin, das vom Port als solches 
eingelesen werden müsste.
Gast #6168464
Lesenswert?
• ▲
▼
Herzlichen Dnak. Der Tip mit dem Abhängen der Analogperipherie hat 
geholfen.


Aber warum soll man im Zusammenhang mit Port A auch auf das Bit USBEN 
achten?

Im Datenblatt vom PIC18F4550 steht auf Seite 115, dass das Register UCON 
(Bit USBEN) einen Einfluss auf Port A hat. Ich kann diesen Einfluss aber 
icht nachvollziehen. Kennt den jemend?

Wenn ich das DB nach den Begriffen UCON und USBEN durchsuche, finde ich 
keinen Satz, der einen Zusammenhang zu Port A herstellt.

Überhaupt sehe ich keinen Zusammenhang zwischen Port A und der USB 
Schnittstelle.
#6168500
Lesenswert?
• ▲
▼
Michi schrieb:
> Aber warum soll man im Zusammenhang mit Port A auch auf das Bit USBEN
> achten?
>
> Überhaupt sehe ich keinen Zusammenhang zwischen Port A und der USB
> Schnittstelle.

PORTA wird auch für die USB-Schnittstelle verwendet.
RA4 ist "External USB transceiver RCV input".

UCON.USBEN muss '0' sein weil sonst Teile von PORTA,PORTB und PORTC für 
USB verwendet werden.......
#6168577
Lesenswert?
• ▲
▼
Chris B. schrieb:
> UCON.USBEN muss '0' sein weil...

Nein, solange der interne Transceiver nicht deaktiviert wird (UTRDIS), 
hat das USB Modul nur Einfluss auf D+ und D- (RC5:4).


Michi schrieb:
> Überhaupt sehe ich keinen Zusammenhang zwischen Port A und der USB
> Schnittstelle.

Schau dir FIGURE 17-1: USB PERIPHERAL AND OPTIONS an. Wie Cris schon 
aufgezeigt hat, ist RCV = RA4.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.