Autor |
Problem PIC16F877 PORTA und D |
|
|
|
|
BID = 40872
McMorton Neu hier
![](/phpBB/images/stars/star.gif)
Beiträge: 42 Wohnort: Lippe
|
|
Hallo
Ich habe zwei Probleme mit dem PIC 16F877.
Irgentwie kann ich die Ports A.4 und A.5 nicht als digitale Ausgänge schalten.
Ich habe den PORT schon von Analog auf digital umgeschaltet (Adcon1 = 0110), aber es geht trotzdem nicht. Die anderen Ports (A0-A3) gehen.
zweites Problem:
Ich habe den PORT D als Eingang geschaltet. Jede Leitung ist mit einem 10K Pulldown versehen.
Sobald ich ein Signal auf einen Pin des Ports D lege zieht der PIC enorm viel Strom (wird richtig warm).
Sobald ich einen zweiten Pin des Ports D auf 1 lege, steigt dieser an usw. Irgetnwie zieht dieser Port ziemlich viel Strom. Wodran liegt das?
Im vorraus schonmal danke. |
|
BID = 40873
perl Ehrenmitglied
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 11110,1 Wohnort: Rheinbach
|
|
Zitat :
| ch habe den PORT schon von Analog auf digital umgeschaltet |
Hast Du Die Pins auch als Ausgänge definiert ?
Zitat :
| Sobald ich ein Signal auf einen Pin des Ports D lege zieht der PIC enorm viel Strom (wird richtig warm). |
Wenn Du kein Problem mit Latchup hast, weil Dein Signal höher als die Speisspannung oder tiefer als GND ist, vermute ich, daß, im Gegensatz zu den obigen, diese Pins als Ausgänge laufen.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten ! |
|
BID = 40880
McMorton Neu hier
![](/phpBB/images/stars/star.gif)
Beiträge: 42 Wohnort: Lippe
|
Jep, alle Pins sind als Ausgänge geschaltet.
ADCON1=0b.0000.0110;
TRISA = 0b.1101.0100; //Ports definieren
TRISB = 0b.1111.1111; //1=Eingang
TRISC = 0b.1111.1111; //0=Ausgang
TRISD = 0b.1111.1111;
TRISE = 0b.1111.1011;
Alles wird von einer Spannungsquelle versorgt. Die Eingänge liegen direkt an 5V (genau wie VDD des PICs). Dazwischen sitzten nur DIP-Schalter.
|
BID = 40923
perl Ehrenmitglied
![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif) ![](/phpBB/images/stars/star.gif)
Beiträge: 11110,1 Wohnort: Rheinbach
|
Mal abgesehen davon, daß Dein Kommentar nicht mit dem Code übereinstimmt,
Zitat :
| irgentwie kann ich die Ports A.4 und A.5 nicht als digitale Ausgänge schalten |
und
Zitat :
| TRISA = 0b.1101.0100; //Ports definieren |
solltest Du mal eine Blick in den generierten Code werfen.
Was für einen Compiler verwendest Du denn ?
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 40989
McMorton Neu hier
![](/phpBB/images/stars/star.gif)
Beiträge: 42 Wohnort: Lippe
|
Als Compiler verwende ich den C-Compiler CC5X.
In dem Register habe ich den PORTA.4 wieder als Eingang definiert, da ich nur einen von beiden brauche (PORTA.4 oder 5). Wie gesagt: wen ich ihn als Ausgang definiere ghet er nicht (genausowenig wie PORTA.5).
Habe mit den Asmmblercode mal angeshene, konnte dort nichts aufälliges finden:
Umschalen auf Digital:
BSF 0x03,RP0
BSF 0x9F,PCFG2
BSF 0x9F,PCFG1
BCF 0x03,RP0
Setzen von PORTA:
MOVLW .212
BSF 0x03,RP0
MOVWF TRISA
![](/phpBB/images/smiles/smilie_confused.gif)
|
BID = 41166
McMorton Neu hier
![](/phpBB/images/stars/star.gif)
Beiträge: 42 Wohnort: Lippe
|
|