Ciao a tutti! Ho comprato da poco il PICKit2 e ho provato a fare eseguire qualche programmino banale. I primi andavano bene, si compilavano e tutto ok. Poi ho provato a fare un altro esempio, ma ogni volta che provo a programmare il PIC, mi dice sempre "invalid value" per il valore del OSCCAL, ma io non lo modifico proprio. Mi spiego meglio. Collego il PICKIt2 e lancio il programma e va bene, quando riconosce il dispositivo dice che il valore del OSCCAL e' 0CFF (corretto), pero' non appena importo il file HEX, mi dice che il valore del OSCCAL e' invalido e ogni volta tira fuori un valore diverso. Ho provato anche a farglielo aggiustare da solo, oppure a cambiarlo a mano, ma niente. Ho provato pure a cambiare a mano gli ultimi byte nella finestra "PRogram Memory"e poi esportare l'HEX cosi' modificato e reimportarlo, ma niente. Fa sempre lo stesso errore. QUando cerco di scrivere il programma nella program memory mediante il tasto "Write", mi dice "Programming failed at Program Memory address 0x00000". Temendo che fosse rotto il PIC ho provato a cambiarlo, ma fa le stesse cose. Ho anche provato a scrivere i vecchi programmi che prima andavano, ma niente, da' lo stesso errore. C'e' qualcuno che mi puo' aiutare? Se puo' servire il programma (banale) e' questo. Grazie a chi mi aiutera'.
;************************************************** ; Secondo esempio programmazione PIC ; LED_2.ASM
; ;**************************************************
PROCESSOR 12F509 RADIX DEC INCLUDE "P12F509.INC" ERRORLEVEL -302
;Setup of PIC configuration flags
;INTERNAL oscillator ;Disable watch dog timer ;Enable power up timer ;Disable code protect
__CONFIG 0x000A
LED EQU 0
cblock 0x10
Count : 2 endc
;Reset Vector ;Start point at CPU reset
ORG 0x00
bsf STATUS,5
MOVLW 0xC0 OPTION
movlw 0x0 movwf OSCCAL
MOVLW 0x00 TRIS 6
bcf STATUS,5
movlw B'00000000' ; spengo i LED movwf GPIO
MainLoop
call Delay
btfsc GPIO,2 goto SetToZero
bcf GPIO,1 bsf GPIO,2 goto MainLoop
SetToZero
movlw B'00000000' ; spengo il LED 2 movwf GPIO
movlw B'00000010' ; accendo il LED 1 movwf GPIO goto MainLoop
;Subroutines
;Software delay
Delay clrf Count ;azzera i due byte di Count clrf Count+1
DelayLoop
decfsz Count,1 goto DelayLoop
decfsz Count+1,1 goto DelayLoop
return
END