sono riuscito a far accende un led
con questo programma preso e modificato leggermente dal tutorial famoso di Tanzilli:
Codice: Seleziona tutto
PROCESSOR 16F628A
RADIX DEC
INCLUDE "P16F628A.INC"
ERRORLEVEL -302
__CONFIG 0x3FF1
LED EQU 2
CBLOCK 0x0C
ENDC
Count RES 2
CBLOCK 0x00
ENDC
bsf STATUS,RP0
movlw B'11101011'
movwf TRISA
movlw B'11111111'
movwf TRISB
bcf STATUS,RP0
bsf PORTA,LED
MainLoop
call Delay
btfsc PORTA,LED
goto SetToZero
bsf PORTA,LED
goto MainLoop
SetToZero
bcf PORTA,LED
goto MainLoop
Delay
clrf Count
clrf Count+1
DelayLoop
decfsz Count,1
goto DelayLoop
decfsz Count+1,1
goto DelayLoop
return
END
il fatto è che dovrebbe lampeggiare, invece il led è fisso.. :(
c'è qualcosa di errato nel codice o sbaglio io?
quando programmo setto come oscillatore XT e tolto tutti i fuses, la programmazione riesce, così come la compilazione
inoltre aggiungo anche che ho messo 2 led, collegati al pin 1 e 3, quindi alle porte RB2 e RB4, che come vedete sono settate a uscita nell'istruzione movlw B'11101011' movwf TRISA, però cambiando la variabile LED (che ora è a 2) mettendola a 4, non si accende il led sul 3, mentre se la lascio a 2, il led sul 1 si accende senza problemi.. Eppure ho controllato mille volte il circuito, che è banalissimo
il quarzo, da 4mhz, è collegato tra il pin 15 e il 16, e su ognuno di questi pin c'è un condensatore da 22pf che scarica a massa