Forum: Mikrocontroller und Digitale Elektronik PIC Register APFCON


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Ben K. (keller_ben)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo erstmal, :)

ich beschäftige mich seid kurzem mit PIC´s und habe eine Frage bezüglich 
der IO´s, bzw. des APFCON- Registers.

Ich habe bisher AVR und MSP430 programmiert und da war es ein wenig 
anders.

Ich arbeite mit dem PIC16F1503 und möchte generell alle IO´s auch als 
digitale Ein- und Ausgänge verwenden. SPI oder andere Funktionen 
interessieren mich bei diesem Projekt nicht.

Schaue ich ins Datenblatt, dann sehe ich, dass ich die alternative Pin 
Funktion über das APFCON verwalten kann.

So weit so gut.

So und jetzt kommt mein Verständnisproblem:

Ich möchte aber RAC4,RAC,... und alle als Ein/Ausgänge verwenden.

Wie verhalten sich die I/Os wenn ich diese als normale GPIO´s verwende?
Das Datenblatt sagt folgendes:

These bits have no effect on the values of any TRIS
register. PORT and TRIS overrides will be routed to the
correct pin. The unselected pin will be unaffected.

<----- Bedeutet dies, dass ich knallhart diese trotzdem als GPIO´s 
verwenden kann, durchs normale initialisieren des TRIS-Registers??

Vielleicht hat ja jemand mehr Erfahrung :)

Vielen Dank.

von Klaus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ben K. schrieb:
> Schaue ich ins Datenblatt, dann sehe ich, dass ich die alternative Pin
> Funktion über das APFCON verwalten kann.

Das hat mit der Frage

Ben K. schrieb:
> Ich möchte aber RAC4,RAC,... und alle als Ein/Ausgänge verwenden.
>
> Wie verhalten sich die I/Os wenn ich diese als normale GPIO´s verwende?

nichts zu tun.

Ein Pin ist entweder einer internen Funktion zugeordnet oder ist ein 
GPIO. Wann er was ist, hängt von der Funktion ab. Meist gewinnt die 
Funktion (I2C, SPI ..) wenn sie enabled ist, genaueres steht im 
Datenblattabschnitt der jeweiligen Funktion. Ist der PIN GPIO, bestimmt 
man mit dem Bit im TRIS-Register die Datenrichtung.

Ben K. schrieb:
> <----- Bedeutet dies, dass ich knallhart diese trotzdem als GPIO´s
> verwenden kann, durchs normale initialisieren des TRIS-Registers??

TRIS bestimmt nur die Richtung, nicht ob es ein GPIO ist.

Nun gibt es für manche der Funktionen nicht nur einen festen Pin, 
sondern man kann sie, z.B. um das Layout zu erleichtern, an verschiedene 
Pins binden. Das macht man mit APFCON.

Wenn du dein gepostet mal liest findest du z.B.

1 = SDO is on RA4
0 = SDO in on RC2

Es passiert dann genau das, was da steht. Und ob SDO aktiv ist, bestimmt 
die SPI-Funktion.

MfG Klaus

von Ben K. (keller_ben)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Klaus,

Danke, aber das war mir bereits bewusst.
Ich versuche mal meine Frage zu konkretisieren.

Ein Bespiel:
Ich habe über das Register APFCON so konfiguriert das RC2 = SDO ist.
(Bsp.: APFCON = 0x00)
SPI ist deaktiviert.

Jetzt möchte ich RC2 als Ausgang oder Eingang festlegen.

Jetzt meine Frage, und bitte darauf antworten:

Ist eine solche Handhabung möglich?
Ja/ Nein?

Was passiert am besagten PIN??

Gruß
Ben

von Volker S. (vloki)


Bewertung
0 lesenswert
nicht lesenswert
Ben K. schrieb:
> Jetzt möchte ich RC2 als Ausgang oder Eingang festlegen...

Wäre doch ziemlich bescheuert, wenn das nicht möglich wäre.

Wenn das SPI Modul nicht aktiviert ist, dann beeinflusst es es auch 
keine Pins.

von Ben K. (keller_ben)


Bewertung
0 lesenswert
nicht lesenswert
> Wäre doch ziemlich bescheuert, wenn das nicht möglich wäre.

Ja, Da hast du recht.

> Wenn das SPI Modul nicht aktiviert ist, dann beeinflusst es es auch
> keine Pins.

Danke für die klare Antwort!
:)

von Volker S. (vloki)


Bewertung
0 lesenswert
nicht lesenswert
Ehrlich gesagt, habe ich mit diesem speziellen Typ noch nichts gemacht.
Man weiß ja nie... ;-)

von met@boxler (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ben K. schrieb:
> Ich habe über das Register APFCON so konfiguriert das RC2 = SDO ist.
> (Bsp.: APFCON = 0x00)
> SPI ist deaktiviert.

Damit ist RC2 nicht als SDO konfiguriert!

Erst wenn SPI aktiviert wird, wird RC2 mit APFCON und der Funktion SDO 
belegt.

> Jetzt möchte ich RC2 als Ausgang oder Eingang festlegen.
>
> Jetzt meine Frage, und bitte darauf antworten:
>
> Ist eine solche Handhabung möglich?

Ja!

Du hast dem Pin RC2 keine Funktion zugewiesen. Er kann als I/O genutzt 
werden. Allerdings gibt es (gerade bei Microchip-PICs) manchmal auch 
noch andere Funktionen, die auf den Pins in der Grundkonfiguration 
eingeschaltet sind:
-> Analoge Funktionen immer abschalten, wenn diese nicht benötigt 
werden.

met@boxler

von Ben K. (keller_ben)


Bewertung
0 lesenswert
nicht lesenswert
met@boxler schrieb im Beitrag #5220339

> Erst wenn SPI aktiviert wird, wird RC2 mit APFCON und der Funktion SDO
> belegt.

Das klingt logisch.
Danke für dein KnowHow :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.