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]
-----