Dobrý večer,
mám nejasnost ohledně činnosti PORTu D u PIC18F4520.
Chtěl jsem jej použít jako běžný I/O port ve funkci výstupu.
Do registru LATCHD je možno zapsat bez problémů, ale na výstupních pinech se mi již zapsaná data neobjeví.
PORTD je možno použít i jako paralelní SLAVE port. Dle datasheetu má mít TRISD registr, ale v blokovém schématu na str. 120 tyto registry nejsou zakresleny. Místo toho jsou tam signálové cesty, vedoucí do výstupního hradla od pinů RD, CS a WR PORTu E.
Podle tohoto schématu se zdá, že je to jediný způsob, jak výstupní hradlo otevřít. Jakou funkci by tedy měl registr TRISD?
Zkoušel jsem i manipulovat s bitem PSPMODE (TRISE 4), ale bez výsledku.
Když se přepnu z režimu ICD-2 do simulačního režimu, data se na výstup portu D dostanou (dle náhledu v okně Watch).
Na PORTD nemám prozatím nic připojeno, není tedy ničím zatížen.
Inicializaci mám nastavenou takto:
MOVLW 0x0F ;A/D = OFF
MOVWF ADCON1
MOVLW 0x07 ;komparátory = OFF
MOVWF CMCON
MOVLW b'11101111' ;RA0-3 = IN
MOVWF TRISA
MOVLW b'11111111' ;PORTB = IN
MOVWF TRISB
MOVLW b'11111111' ;PORTC = IN
MOVWF TRISC
MOVLW 0x00 ;PORTD = OUT
MOVWF TRISD
MOVLW b'11100111' ;PORTE = IN
MOVWF TRISE
Nevíte, prosím, v čem by mohl být problém?
V příloze přikládám datasheet.
Děkuji,
Vl.
administrator: přejmenováno z “PIC18F4520 a PORT D”
PIC18F4520.pdf (6.2 MB)