come in oggetto.. risolto tutto..
grazie lo stesso MSchiepp.... ..mi piace poter condividere con qualcuno questa esperienza.
allora il codice andava bene.. il problema era che io cercavo prima di leggere poi di scrivere.. è qui che mi sono incasinato.
Il risultato lo ottengo su un display a 7 segmenti.
Allora ho tre bottoni interruttori su RA0,RA1,RA2
1) il primo serve a navigare su dei numeri cha vanno da 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
2) un secondo interruttore serve a scrivere il numero correntemente mostrato nel display
3) infine il terzo bottone serve a leggere il numero registro nella EEPROM
BEne adesso se provo a programmare il MICRo alla prima volta che lo uso se provo a premere il bottone 2, il micro si blocca, cerca di leggere dalla EEPROM che è vuota.
PErò se accendo il MIcro navigo tra i numeri ...premo il tasto 3 il numero corrente viene registrato nella EEPROM, se continuo a navigare e poi premo il tasto 2 OK mi fa vedere il numero registrato.. se stacco tutto e riaccendo il micro e clicco direttamente il tasto 2 ecco che appare il numero desiderato. CVD (come volevasi dimostrare) questa volta non si blocca perchè trova nella EEPROM un dato.
Perfetto questo è un bel il punto di partenza! sommando il fatto che riesco a usare la USART, i comparatori, i TIMER ...mi pare d'aver raggiunto un buon livello sul 16F628.
mi posso ritenere soddisfatto... ..il 16F628 è un gioiellino... il suo datasheet risulta spesso poco chiaro, e non dico per l'inglese, ma per il giro di parole infinite per speigare concetti spesso molto semplici. Però veramente un gioiellino, a guardarlo sembra un niente.. invece...
OGGI mi sono preso il 16F876 .... comincierò a lavorarci sopra... voglio iniziare a lavorare sugli ingressi analogici.
a presto
fausto
Citazione:
Originalmente inviato da MSchiepp Attenzione a non fare confusione... il messaggio che vedi serve semplicemente a ricordare che le locazioni indicate sono in un banco diverso da quello di default e quindi è necessario predisporre il baco giusto (letteralmente: il registro nell'operando non è nel banco 0: verificare che i bit di (selezione del) banco siano corretti).
Il compilatore (in questo caso l'assemblatore) non sa se il micro riuscirà o meno a leggere in quella locazione e quindi non può segnalarti un errore del genere! Quindi il problema non è nella selezione del banco, cosa che puoi verificare facilmente provando a settare il registro di direzione di una porta e a vedere se la porta si comporta di conseguenza.
Cosa stai usando per le prove? Come fai a verificare e il dato è stato scritto o meno? Questa sera provo il tuo codice: vedrai che si risolve tutto.
Michele |