Nedan följer ett program, där den intressanta delen är längst ner.
Jag tänder bit 1 i PORT E, sedan bit 0, för att sedan släcka dem i omvänd ordning.
MEN när jag tänder bit 0 så släcks bit 1!
Detta verkar inte vara enligt spec för bcf/bsf-instruktionerna.
Jag har verifierat med logikanalysator, de tre tändningarna av bit 1 genererar en lång puls på PORTE-1,
men sen när efterföljande korta puls kommer för PORTE-0, så slutar pulsen från PORTE-1!
Jag gör säkert något fullkomligt uppenbart fel, men vad???

Kod: Markera allt
STATUS equ 03h ;Address of the STATUS register
TRISA equ 85h ;Address of the tristate register for port A
TRISB equ 86h
TRISC equ 87h
TRISD equ 88h
TRISE equ 89h
PORTA equ 05h ;Address of Port A
PORTB equ 06h
PORTC equ 07h
PORTD equ 08h
PORTE equ 09h
bsf STATUS,5 ;Switch to Bank 1
; Port A is the input port for control pins (688 etc). Make it input
movlw 0xFF
movwf TRISA
; Port B is the input for the external data bus. Make it input
movlw 0xFF
movwf TRISB
; Port C and D drives the horizontal transistors. Make them output
movlw 00h
movwf TRISC
movlw 00h
movwf TRISD
; Port E sends control signals to power transistors and FP2800. Make it output
movlw 00h
movwf TRISE
bcf STATUS,5 ;Switch back to Bank 0
Start
bsf PORTE, 1 ; Do the same thing 3 times to get some delay
bsf PORTE, 1
bsf PORTE, 1
bsf PORTE, 0
bcf PORTE, 0
bcf PORTE, 1
goto Start