Bonsoir
Je débute et je veux modifier la partie ou les données lu sont envoyer vers le port série (call rs232_send).
Par saute sur programme d’écriture en eeprom, et écrie les données dans celle-ci, et la ça
ce complique.
Avez-vous une idée de la routine à écrire
Merci

lecdata :40 ; le registre lecdata( 40 octets)

PageWrite ;24lc256

bcf STATUS,RP1
bcf STATUS,RP0 ;
clrf eepa ; adresse d'écriture = 00
clrf eepa+1 ; idem poids faible
movlw lecdata ; lecdata contient les donnees a ecrire( 40 octets)
movf octet, w ; placer octet dans W
incf buflen, f ; +1 dans buflen
incf FSR, f ; +1 FSR
movwf INDF ; charger octet dans le bon buffer
call eep_sendbuf ; envoyer le buffer dans l'eeprom

eep_sendbuf

call eep_adress ; initialiser pointeur adresse
movlw buffer ; charger adresse buffer
movwf FSR ; dans pointeur

eep_sendb1

movf INDF,w ; charger un octet
call i2c_write ; l'envoyer
incf FSR,f ; incrémenter pointeur buffer
decfsz buflen,f ; décrémenter nbre d'octets restants
goto eep_sendb1 ; pas fini, suivant
call i2c_stop ; fin du transfert
return ; et retour



read_data

movlw lectur_data ;on met lectur_data dans le registre W
movwf FSR ;on met W DANS FSR
clrf byte_count ;efface

read_bytes_loop ;

clrf INDF ;efface
clrf parity_count ;efface
movlw 5 ;on met 5 dans le registre W
movwf bit_count ;on met 5 dans bit_count

read_bits_loop ;
btfsc temp ;on teste
goto send_data ;saute
btfss CLOCK ;on teste
goto get_data_bit ;saute
goto read_bits_loop ;saute

get_data_bit ;
bcf STATUS,C ;
btfsc DATA ;on teste
goto data_bit_in_c ;saute
bsf STATUS,C ;
incf parity_count,F ;incremente

data_bit_in_c
btfss CLOCK ;on teste
goto data_bit_in_c ;saute
decfsz bit_count,F ;decremente
goto save_bit ;saute
goto check_parity ;saute

save_bit
rrf INDF,F ; rotation
goto read_bits_loop ;saute

check_parity
btfss parity_count,0 ; check for odd parity
goto lectur_data_error ;
swapf INDF,F ; swap nibbles in lect data byte
incf byte_count,F ;
movlw h'f1' ;
addwf INDF,0 ; w=INDF+F1h
btfsc STATUS,Z ;
goto send_data ;
incf FSR,F ;
goto read_bytes_loop ;

send_data

movlw lectur_data ;
movwf FSR ; pointe sur lectur_data
movlw '+' ;
movwf serial_char ;
call rs232_send ; send '+' to indicate success

send_data_loop ;
movf INDF,0 ;
addlw h'30' ;
movwf serial_char ; put data+30h into serial_char
call rs232_send ;
incf FSR,F ;
decfsz byte_count,F ;
goto send_data_loop ;

wait_end_temp ;
btfss temp ;
goto wait_end_temp ;
goto wait_for_temp ;