Hallo miteinander Ich benutze einen PIC16f628a. Ich habe alle Ports (A und B) auf ausgang geschaltet und auf high gelegt. Gewisse Pins haben nun 5V aber ein Paar nicht. Zum einen solche RA1 - RA4. Ich weiss diese sind von haus aus auf analog geschaltet. Ich benutze den XC8 compiler. Kann mir jemand verraten, wie ich diese Pins anstatt analog auf digital umkonfigurieren kann? Der PortB funktioniert als ausgang einwandfrei. http://www.sprut.de/electronic/pic/grund/ioports.htm habe ich mir schon durchgelesen, ist aber für assembler. gruss
alphi hard schrieb: > Gewisse Pins haben nun 5V aber ein Paar nicht. Zum einen solche RA1 - > RA4. Ich weiss diese sind von haus aus auf analog geschaltet. mehrere Möglichkeiten: 1. Nicht digital konfiguriert. (Analog / Comparator) Da der PIC16F628 keine ADC Eingänge hat bleibt nur der Comparator über. Siehe 3. 2. http://www.sprut.de/electronic/pic/fallen/fallen.html#ra4 3. Manche PICs haben Comparatoren die auch gerne nach Reset aktiviert sind. Der 16f628 gehört zu denen. Zum ändern Datenblatt lesen und die Register setzen. Das ist Grundlagenarbeit. Guckst du also hier http://ww1.microchip.com/downloads/en/devicedoc/40044f.pdf auf S63ff steht schon das richtige Register. Einfach Comparatoren deaktivieren und es sollte gehen. alphi hard schrieb: > http://www.sprut.de/electronic/pic/grund/ioports.htm habe ich mir schon > durchgelesen, ist aber für assembler. Das ändert nichts daran. Ob man nun die Register in Assembler oder C beschreibt macht keinerlei unterschied.
alphi hard schrieb: > Kann mir jemand verraten, wie ich diese > Pins anstatt analog auf digital umkonfigurieren kann? Ja, das Datenblatt: http://ww1.microchip.com/downloads/en/devicedoc/40044f.pdf Seite 33: > EXAMPLE 5-1: INITIALIZING PORTA > > CLRF PORTA ;Initialize PORTA by > ;setting > ;output data latches > 0x07 ;Turn comparators off and > MOVWF CMCON ;enable pins for I/O > ;functions > BCF STATUS, RP1 > BSF STATUS, RP0 ;Select Bank1 > MOVLW 0x1F ;Value used to initialize > ;data direction > MOVWF TRISA ;Set RA<4:0> as inputs > ;TRISA<5> always > ;read as ‘1’. > ;TRISA<7:6> > ;depend on oscillator > ;mode Die TRSISA bits darfst du natürlich so ändern wie du sie haben willst. RA4 ist bei diesem PIC wirklich nur Open Drain. Um den auf High zu kriegen brauchst du einen Pullup. Auf S. 13 im Datenblatt findest du eine Liste, in der steht, welcher IO was kann. Nicht benötigte Zusatzfunktionen müssen deaktiviert werden, falls diese nach dem Power On Reset aktiv sind. Wie man das macht steht im Datenblatt im Kapitel zu diesem Modul. P.S. Diesen alten PIC würde ich nicht mehr verwenden. Moderne PIC16 sind schneller und haben mehr Peripherie, ROM und RAM. Der Instuction Set ist besser für C-Compiler geeignet. Oft sind sie auch billiger. Zum Beispiel der PIC16F1827.
:
Bearbeitet durch User
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.