Volendo complicarmi, non poco, la vita ho acquistato una demo board easy PIC v7 di mikroe.
La stessa monta a bordo in origine il pic18f45k22 che dal datasheet mi è sembrato un micro piuttosto completo a livello di I/O, timer e quant' altro. Prima della "easy" utilizzavo il pickit2 con annesso pic16f690.
Vengo direttamente al problema.
Non riesco ad adattare un programmino funzionante per il 16f690 sul 18f45k22. Si tratta di far accendere 8 led sulle uscite RB0...RB7 e farli spegnere tenendo premuti contemporaneamente 2 pulsanti rispettivamente su RC6 e RC7 trascorsi circa 3 secondi.
Utilizzando l' assembler in mplab, funziona correttamente con mplab sim il simulatore integrato. Quando carico il programma nel pic18, si comporta in maniera strana, praticamente i led si spengono da soli dopo 3 secondi ignorando lo stato degli ingressi dove sono collegati i pulsanti. Il codice è questo:
- Codice: Seleziona tutto
;*****************************************************************************************************************
#include <P18F45K22.INC>
org 00h
;*****************************************************************************************************************
;Ciclo di delay pari a 3 sec. 0,33 Hz
;*****************************************************************************************************************
TEM equ 50
TEM1 equ 51
TEM2 equ 52
movlw b'11111111'
movwf TRISA
movlw b'00000000'
movwf TRISB
movlw b'11000000'
movwf TRISC
clrf PORTB
clrf ANSELA
clrf ANSELB
clrf ANSELC
movlw b'11111111'
movwf PORTB
START:
btfss PORTC,6
call DELAY
btfss PORTC,7
call DELAY
goto FINE
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;*********************************************************************************************************************
; DELAY PARI A 3 Sec.
;*********************************************************************************************************************
DELAY:
movlw b'01111111'
movwf TEM2
CHARGE1
movlw b'11111111'
movwf TEM1
CHARGE
movlw b'11111111'
movwf TEM
btfsc PORTC,7 ;Controllo che RC7 sia ancora premuto
bra START
btfsc PORTC,6
bra START ;Controllo che RC6 sia ancora premuto
DELAY1
decfsz TEM, F
goto DELAY1
decfsz TEM1, F
goto CHARGE
decfsz TEM2,F
goto CHARGE1
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
movlw b'00000000'
movwf PORTB
FINE:
goto START
end
Per programmare il pic18 creo prima il file.hex con mplab e lo importo in MicroProg Suite for PIC di mikroe. Credo di aver sistemato correttamente tutti i jumper della board e di aver configurato adeguatamente i fuses in MicroProg.
Grazie, Marco.

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)




