Vai al contenuto
PLC Forum


La Eeproomxdel 16F628 Non Risponde


Saveriopapadia

Messaggi consigliati

Saveriopapadia

Buongiorno,

Sono intento a programmare un pic 16f628 in assembler.

Il programma esesue correttamente la programmazione della eeprom all'indirizzo 0, ma nel momento in cui implemento la programmazione di un ulteriore indirizzo l'esito è negativo.

esempio, con la seguente istruzione programmo la eeprom all'indirizzo 0:

MOVLW 0X00 ;
MOVWF EEADR ; Address to read
MOVF VALORE,W
MOVWF EEDATA ; carica in EEDATA il valore di VALORE

BCF INTCON,GIE ; Disable INTs.

BSF EECON1,WREN ; Enable write
MOVLW 0X55 ;
MOVWF EECON2 ; Write 55h
MOVLW 0XAA ;
MOVWF EECON2 ; Write AAh
ATTESA BSF EECON1,WR ; Set WR bit ; BEGIN WRITE
BTFSC EECON1,WR ; Testa il bit WR e salta l’istruzione successiva se 0
GOTO ATTESA
BSF INTCON,GIE ; Enable INTs.
BCF STATUS,RP0 ; Bank 0

tutto ok, ora se cambio indirizzo di EEADR, il valore non viene registrato.

Esempio:

MOVLW 0X01 ;
MOVWF EEADR ; Address to read
MOVF VALORE2,W
MOVWF EEDATA ; carica in EEDATA il valore di VALORE

BCF INTCON,GIE ; Disable INTs.

BSF EECON1,WREN ; Enable write
MOVLW 0X55 ;
MOVWF EECON2 ; Write 55h
MOVLW 0XAA ;
MOVWF EECON2 ; Write AAh
ATTESA2 BSF EECON1,WR ; Set WR bit ; BEGIN WRITE
BTFSC EECON1,WR ; Testa il bit WR e salta l’istruzione successiva se 0
GOTO ATTESA2
BSF INTCON,GIE ; Enable INTs.
BCF STATUS,RP0 ; Bank

Perchè all'indirizzo 0X01 non trovo il valore 2?

Dove sbaglio? :worthy:

Link al commento
Condividi su altri siti


Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...