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.
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
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
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.
> 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! :)
Ehrlich gesagt, habe ich mit diesem speziellen Typ noch nichts gemacht. Man weiß ja nie... ;-)
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
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 :)
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.