Newsgroup: it.hobby.elettronica.digitale
Titolo: Led che lampeggia con 16f84(problema)

Sto facendo i miei approcci alla programmazione dei PIC usando MPLAB IDE
versione 5.5 e volevo controllare se il programma scorreva normalmente.
Ho
scritto il codice ASM , l'ho compilato con f10 , ho premuto ctrl+f9 per
eseguire l'ASM ed arrivato nella subroutine delay guardavo le locazioni 0CH
e 0DH nella finestra "file register":
la locazione 0Ch decrementa
normalmente da ff a 00 mentre 0Dh(count+1) ha dei valori sballati , tanto
per iniziare al primo decremento da 00 iniziale finisce a 59h ( ma  00-1
non fa FF? ) poi altro decremento lo porta a 58h( qui capisco) altro
decremento lo porta a 51h (ancora non capisco)!
Come mai ho questi valori
sballati ?
Grazie della pazienza!
Questo č l'ASM
PROCESSOR 16F84
RADIX DEC
INCLUDE "P16F84.inc"
__CONFIG 3FF3H
LED  equ 0
org 0CH
count
res 2
org 00h
bsf STATUS,RP0
movlw 00011111B
movwf TRISA
movlw
11111110B  
movwf TRISB       
bcf STATUS,RP0    		
bsf PORTB,LED
;accende il led
mainloop
call delay
btfsc PORTB,LED  ;test se acceso
goto spegni
bsf PORTB,LED
goto mainloop
spegni
bcf PORTB,LED   ;spegne
il LED
goto mainloop
delay
clrf count
clrf count+1
delayloop
decfsz
count,f   ;decrementa count se 0 salta riga seguente
goto delayloop
decfsz count+1,f ;decrementa count+1 se 0 salta riga seguente 
goto
delayloop
return
end
--------------------------------
Inviato via 
http://usenet.iol.it

 res 2
Io questo non l'ho mai visto, prova con qualcosa del tipo:
#define count1 0x0C
#define count2 0x0D
o
count1 equ 0x0C
count2 equ 0x0D
Ciao.
--
Nik

 Sto facendo i miei approcci alla programmazione dei PIC usando MPLAB IDE
versione 5.5 e volevo controllare se il programma scorreva
normalmente..........
[cut]
a me sembra tutto a posto, non e' che e' la simulazione che funziona male?
un piccolo trucchetto, per cambiare il livello del bit 0 di PORTB senza fare
tutti quei test e salti... al posto di:
    btfsc PORTB,LED ;test se acceso
    goto spegni
    bsf PORTB,LED
    goto mainloop
spegni
    bcf PORTB,LED ;spegne il LED
    goto mainloop
basta scrivere:
    movlw 1
    xorwf PORTB,f
    goto mainloop
ciao
Claudio

Ciao Nik


ciao Claudio
Grazie,
fa sempre comodo risparmiare qualche byte!
Andrea.


 Mi č venuto in mente anche a me , pensa che ho scaricato di nuovo l'mplab
(12mb...) e l'ho anche ri-installato, cosa altro ti viene in mente ?
non saprei, prova a ridurre il problema e vedere con un loop piu' semplice
se le cose si comportano come previsto, o a mettere dei semplici decrementi
uno di seguito all'altro... potrebbe benissimo esserci un bug nell'mplab
a me queste simulazioni non sono mai piaciute, in un caso come questo
possono anche andare bene ma se dei cominciare a gestire segnali reali
preferisco la prova sul campo, magari facendomi trasmettere dal pic il
valore delle variabili in punti chiave del programma.
ciao
Claudio

ciao Claudio
Scusami sono un principiante....
:-)
che vuol dire "facendomi trasmettere dal pic il valore delle variabili
in punti chiave del programma." ??
Grazie ancora!


 che vuol dire "facendomi trasmettere dal pic il valore delle variabili in
punti chiave del programma." ??
vuol dire che uso un pin di uscita per trasmettere serialmente dei dati
verso il PC in modo da poterne visualizzare il valore, cosi' se per esempio
voglio vedere il risultato di un'operazione logica o aritmetica, subito dopo
averla effettuata chiamo una subroutine di trasmissione seriale che invia il
byte (o i bytes) che mi interessa.
Ho messo qualcosa su 
http://members.xoom.it/stor/pic/pic.htm
 ma mi accorgo
che manca un esempio semplice... il sito non e' nato come un corso ma come
un promemoria sintetico...
ciao
Claudio

versione 5.5 e volevo controllare se il programma scorreva normalmente.
Non so che dirti... nel senso che ho provato quel programma (che se
non ricordo male proviene dal corso di Tanzilli) sotto MPLab (la
stessa ver che usi tu) e a me i registri si decrementano correttamente
come da ciclo loop...
bye
 Luca
-----------------------------------------------------------------
La mia pagina dedicata all'elettronica:
--> 
http://www.dentella.it/elettronica
-----------------------------------------------------------------

>mi sa di si... naturalmente era selezionato il micro corretto?
Ho
impostatto la direttiva PROCESSOR 16F84 
Grazie di tutto probabilmente č
un problema del simulatore
Ciao,
