Hallo Ich benutze einen PIC18F14K22 und kann die Eingänge 3:0 nicht einlesen. Habe folgenden code: Config FOSC = IRC ;Interner Oscilator Init: MOVLW 0xFF MOVWF TRISA ;Alles Inputs MOVLW 0x0 MOVWF WPUA ;Pullup Inputs LOOP1: MOVF PORTA,W ;Anzeige GOTO LOOP1 Kann mir jemand helfen? Andy
Deaktiviere mal den ADC. Hast du #MCLR auch deaktiviert und auf InputPort gestellt? In deiner Schleife schreibst du den Wert von PortA in W. Woran erkennst du, ob du die richtigen Werte ließt? Gruß Sebihepp
Salü Das ganze ist ja mit PULLUP intern definiert. BCF INTCON2,RABPU ;Enable Pullups BSF WPUA, WPUA0 ;Pullup Inputs BSF WPUA, WPUA2 ;Input sind H BSF WPUA, WPUA5 ;Durch schalter werden diese L gesetzt MLCR habe ich richtig, da ich RA3 nicht benötige. RA5 funtioniert, doch RA0:2 zeigt immer 0 trotz PULL UP Habe mal als Test Port B mit TRISB auf 0xFF gestezt. Gleiches Probleb, BIT 5:4 ist high, BIT7:6 ist low Bei allen PICs die ICH habe das gleiche. Ich verstehe das nicht zumal in Data Sheet auch keine Hinweise gefunden habe. ADC ist ja deaktiviert. Es scheint dass da irgend etwas noch blockiert.
Ich sehe das W Register im Debugger. Darum habe ich ja auch nr die Ports 5,2 und 0 genommen, da diese nciht vom Debugger benützt werden. Oder meinst Du es könnte daran leigen? Aber wieso gehen dann die Ports von B auch nicht? Wenn doch der PullUp intern aktiviert ist, so sollte doch H eingelesen werden auch wenn am Chip nichts angeschlossen ist, oder sehe ich das falsch?
Korrektur vom Code: Init: MOVLW 0xFF MOVWF TRISA ;Alles Inputs BCF INTCON2,RABPU ;Enable Pullups MOVLW 0xFF MOVWF WPUA ;Pullup Inputs LOOP1: MOVF PORTA,W ;Anzeige WREGISTER GOTO LOOP1
HI Sebihepp Danke für den Tip. ANSEL und ANSELH waren die übeltäter! Gruss und schöne Pfingsten. Andy
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.