Saveriopapadia Inserito: 11 aprile 2014 Segnala Inserito: 11 aprile 2014 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?
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora