To tylko jedna z 2 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
;========================================================================
;Listing 7.27 Procedura wyslania danych do urzadzenia
;========================================================================
write_data ;wysyla dane do urzadzenia na przykladzie pamieci 24c04
;adres urzadzenia w rejestrze adr_pam
;adres pierwszej komorki w rejestrze adr_kom
;dane do wyslania w rejestrach data1, data2, ...
call i2c_port_ini
call i2c_start ;wyslij start
;wysyla adres pamieci
movf adr_pam, w ;wpisz adres do w
write ;zapis do slave, zeruje bit r/w call i2c_send ;wyslij adres
btfsc ack ;sprawdz potwierdzenie
goto write_end ;brak poptwierdzenia
;jest potwierdzenie
;wysyla adres pierwszej komorki w pamieci
movf adr_kom, w ;wpisz adres pierwszej komorki do w
call i2c_send ;wyslij adres pierwszej komorki
btfsc ack ;sprawdz potwierdzenie
goto write_end ;brak poptwierdzenia
;jest potwierdzenie ;zapis sekwencyjny 1 strony pamieci (do 16 danych) ;zapisuje pierwsza dana do pamieci
movf data1, w ;wpisz pierwsza dana do w
call i2c_send ;zapisz pierwsza dana komorki
btfsc ack ;sprawdz potwierdzenie
goto write_end ;brak poptwierdzenia
;jest potwierdzenie ;zapisuje druga dana do pamieci movf data2, w ;wpisz druga dana do w
call i2c_send ;zapisz druga dana komorki
btfsc ack ;sprawdz potwierdzenie
goto write_end ;brak poptwierdzenia
;jest potwierdzenie ;... zapis kolejnych danych
write_end ;koniec procedury
call i2c_stop ;wyslij stop
call del_10ms ;czekaj do 10 ms na zakonczenie zapisu
return
... zobacz całą notatkę
Komentarze użytkowników (0)