org 0x00 ; Start
bsf STATUS, RP0 ;
bcf STATUS, RP1 ; Går till bank 1
movlw 0x7E
movwf OSCCON ; Intern 8MHz
movlw 0x07
movwf CMCON ; Ingen komparator
movlw 0x00
movwf ANSEL ; Ingen analog
movlw 0x00
movwf TRISA ; Alla utgångar
movwf TRISB ; Alla utgångar
bcf STATUS, RP0 ;
bcf STATUS, RP1 ; Går till bank 0
movlw 0x04
movwf PORTA ; Aktiverar kolum 3
movlw 0xff
movwf PORTB ; Aktiverar alla rader
a goto a ; Loopa i all evighet
END
Bara som test. Allt funkar förutom just RB3. Jag har tagit bort alla förbindelser till benet och mäter En låg spänning <1V som ändras (ökar) när jag rör pinnen.
Det blir ju så på ingångar så kan den av någon anledning vara en ingång?
Configen: http://i37.tinypic.com/2zh2r06.png
Enl. DATABLADET sid 60, tabell 5-3, Note 3:
"Low-Voltage ICSP Programming (LVP) is enabled by default, which disables the RB3 I/O function. LVP must be disabled to enable RB3 as an I/O pin and allow maximum compatibility to the other 18-pin mid-range devices."
Nej, det ska man inte behöva.
Det är bara vanlig text så det ska ligga direkt i inlägget.
Dessutom så är det enkelt att ta med dina __CONFIG inställningar.
Skit i de inställningar som finns i IDE'n...
Dessutom kan det där inte vara hela din kod.
Det saknas t.ex #include av din device-fil...
Nej, jag gjorde inte det. Vet PIC'en om dessa inställningar? (en del programmeringsenheter har inte alltid lyckats skicka inställningarna efter vad jag vet)
De 2 första raderna
P=p16f88
include p16f88.inc
De har ju ingen betydelse för felet så jag skippade dem.
Och kan jag ha bara LVP inställd i _CONFIG? Hur skriver jag då?
Jag har bara använt den inbyggda config-bit ändraren.
Jag la till
__config _LVP_OFF
Men får detta felmeddelande:
Error[126] C:\PROGRAM\MICROCHIP\PROJECT\MATRIS\MATRIS.ASM 3 : Argument out of range (not a valid config register address)
; To use the Configuration Bits, place the following lines in your source code
; in the following format, and change the configuration value to the desired
; setting (such as CP_OFF to CP_ALL). These are currently commented out here
; and each __CONFIG line should have the preceding semicolon removed when
; pasted into your source code.
org 0x00 ; Start
banksel OSCCON <----- TITTA HÄR
movlw 0x7E
movwf OSCCON ; Intern 8MHz
movlw 0x07
movwf CMCON ; Ingen komparator
movlw 0x00
movwf ANSEL ; Ingen analog
movlw 0x00
movwf TRISA ; Alla utgångar
movwf TRISB ; Alla utgångar
banksel PORTA <----- TITTA HÄR
movlw 0x04
movwf PORTA ; Aktiverar kolum 3
movlw 0xff
movwf PORTB ; Aktiverar alla rader
a goto a ; Loopa i all evighet
END
Detta sätt gör "exakt" det samma fast du ska aldrig hålla på att kolla vilken bank som behövs, kan det vara olika banker kastar man in en "banksel", man kan alltid rensa bort sedan.