Dieu du ciel!!
Je veux juste écrire un byte en mémoire et le lire par la suite
mais avec ce programme j'ai plein des messages d'erreur
comme:
- "Directive not allowed when generating an object file (ORG)"
Pour la ligne "org EEPROM ; adresse debut zone eeprom"
- "Executable code and data must be defined in an appropriate section"
Pour la ligne "bsf STATUS, RP0 ; passer en banque1"
Sachant que je respecte bien les colonnes!!
- "Register in operand not in bank 0. Ensure that bank bits are correct."
Pour la ligne "bsf EECON1, RD ; lancer la lecture EEPROM"
...
Voilà tant de messages qui me chiffonnent! (snnniiiff)
Je ne sais plus où je dois creuser dans la bible pour atteindre mon but
Voici mon programme:
LIST p=16F628 ; Définition de processeur
#include <p16F628.inc> ; Définitions des constantes
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _MCLRE_ON & _LVP_OFF
EEPROM EQU 0x2100
; DECLARATIONS DE VARIABLES *
;***************************** *************************
CBLOCK 0x020 ; Début de la zone variables
valeur : 1 ; la valeur
valeur_temp : 1
ENDC ; Fin de la zone
; DECLARATIONS DE LA ZONE EPROM *
;***************************** **************************
org EEPROM ; adresse debut zone eeprom
; de 0x93 ; valeur de recharge du compteur
; JE LUI DONNE UNE ZONE LIBRE???? :?
; LECTURE MEMOIRE
;***************************** *****************************
;* on est en bank1 dans le main
READEE ; adresse a lire dans registre EEADR
bsf STATUS, RP0 ; passer en banque1
bsf EECON1, RD ; lancer la lecture EEPROM
bcf STATUS, RP0 ; repasser en banque0
return
;***************************** *****************************
; ECRITURE MEMOIRE
;***************************** *****************************
;* On est en BANK1 dans le MAIN
WRITEE
bcf INTCON, GIE ; interdire interruptions
btfsc INTCON, GIE ; tester si GIE bien a 0
goto WRITEE ; non, recommencer
bsf STATUS, RP0 ; passer en banque1
bsf EECON1, WREN ; autoriser acces écriture
movlw 0x55 ; charger 0x55
movwf EECON2 ; envoyer commande
movlw 0xAA ; charger 0xAA
movwf EECON2 ; envoyer commande
bsf EECON1, WR ; lancer cycle d'écriture
bsf INTCON, GIE ; reautoriser interruptions
bcf STATUS, RP0 ; repasser en banque0
return
; DEMARRAGE SUR RESET *
;***************************** **************************
ORG 0x000 ; Adresse de départ après reset
goto start ; Adresse 0: start
start
; initialisations
movlw 0xFF
movwf valeur
movwf valeur_temp
; fin init
bcf status, RP0
bcf status, RP1
bsf STATUS, RP0 ; Passage au banc mémoire 1
clrf EEADR
bcf STATUS, RP0 ; Passage au banc mémoire 0
call READEE
bsf STATUS, RP0 ; Passage au banc mémoire 1
movfw EEDATA
bcf STATUS, RP0 ; Passage au banc mémoire 0
movwf valeur
btfss STATUS, Z
goto fin
goto etape1
; nul donc je peux ecrire
etape1
movfw valeur_temp
bsf STATUS, RP0 ; Passage au banc mémoire 1
movwf EEDATA
clrf EEADR
bcf STATUS, RP0 ; Passage au banc mémoir 0
call WRITEE
fin
END
Merci d'avance d'avoir lu ce programme
vos remarques ainsi que votre aide sont les bienvenus
Allez à bientôt
bison
bonjour,
merci de ne pas écrire les titres en masjuscules et lire les règles du forum en cliquant ici.
[RV]
-----