-
schreib mal folgendes in die Initialisierung:
Code:
movlw B'00000000' ;PORTA: I/O-Pins
movwf ANSEL
Damit ist mal sicher PortA auf die I/O-Funktion eingestellt.
Zudem sollteste mal versuchen, den Taster von Hand zu "simulieren" indem du einfach einen Drat von PORTA,0 an 5V hälts oder nicht. Damit kannst du mal testen, ob das Problem ev. am Taster-Aufbau liegt oder nicht.
greez
-
Ein Register ADCON1 oder ANSEL gibt es nicht.
Die Taster funktionieren sicher.
Wenn ich eines der mitgelieferten Demo programme draufbrenne geht alles was gehen soll.
-
Jau, aber ein schneller Blick in den Datenblatt verrät:
Es hat etwas, das sich einem "Comparator Module" nennt und den PortA "besetzt". Schreib mal in deine Initialisierung diesen Code hinein (entnommen aus dem Datenblatt von der Seite 29 ;):
Code:
banksel CMCON
movlw 0x07
movwf CMCON
banksel TRISA
Damit "kappst" du die analogen Eingänge der beiden Comparatoren von den Eingängen.
MfG
Mobius
-
Stimmt, der PIC16F627 hat zwar Analog-Eingänge, jedoch für einen Compare, und nicht für AD-Wandlung. Nach dem Begriff 'Analog' fiel mir sofort die Stolperfalle mit dem ADCON1 ein und ich hatte nicht weiter gelesen.
Irren ist menschlich, sagte sich der Igel und kletterte von der Bürste.
-
Irren ist menschlich, sagte sich der Igel und kletterte von der Bürste.
sehr bitter, aber der Igel ist halt kein Mensch, und darum kann er auch nicht menschlich Irren. ^^
-
Da ich jetzt nach Tagen endlich mal wieder dazugekommen bin weiter zu experimentieren stelle ich fest: Es waren tatsächlich eingeschaltete Comparatoren auf den Eingängen. Danke für die unkomplizierte Hilfe
-
hallo, eigentlich geht es um die Statusabfrage für ein Display. Aber da ich generell probleme mit der Abfrage von signalen habe hier mein Problem:
ein ganz einfaches programm, PIC18F4685 :
Code:
Init:
bsf RCON, IPEN
bsf INTCON, GIEH
bsf INTCON, GIEL
movlw 0x70 ; maximale interne Frequenz 8MHz setzen
movwf OSCCON
movlw 0xFF
movwf TRISD ; PortD als Eingang definieren
clrf TRISC ; PortC als Ausgang definieren
return
Main:
; *** main code goes here ***
ORG 0x0100
rcall Init ;Initialisieren
Main_:
movf PORTD,w ; get status, statt dem w geht auch 0
nop
nop
nop
nop
movwf LATC
goto Main_
return
aber an den entsprechenden Pins des PORTC liegen nicht die Signale an, die ich an PortD anlege. Was mache ich falsch?