Witam
Jestem początkujący w pisaniu programów w Bascom 8051.Mam problem z zapisem i odczytaniem z 24c02 liczby z przedziału 8550 do 10050.Wszystkie dotychczasowe próby kończyły się fiaskiem.Sugerowałem się samplami z Bascoma ale nic z tego.Za każdym razem odczytuję 255.Program piszę na at89c2051.Proszę o pomoc . Może ktoś ma sprawdzone działające procedury do zapisu i odczytu pamięci.
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięzapis i odczyt 24c02
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
kwestia jest tego typu ze do 24c02 zapisujesz poszczególne bajty
Bajt ma osiem bitów a więc może przyjmować wartości tylko od 0 do 255 właśnie
moja rada taka rozbij zmienną na dwa poszczególne bajty (np za pomocą poleceń low i high np )
zapisz do pamięci
odczyt z pamięci - najpierw młodszy bajt potem starszy potem zamień na inna zmienna poleceniem np makeint
Bajt ma osiem bitów a więc może przyjmować wartości tylko od 0 do 255 właśnie
moja rada taka rozbij zmienną na dwa poszczególne bajty (np za pomocą poleceń low i high np )
zapisz do pamięci
odczyt z pamięci - najpierw młodszy bajt potem starszy potem zamień na inna zmienna poleceniem np makeint
Dziękuję za podpowiedz.Znalazłem w helpie opis tych instrukcji i będę pisał program.
Mam jeszcze jedno pytanie, czy do transmisji wielobajtowej po I2C lepiej użyć instrukcji
I2CSEND i I2CRECEIV czy napisać całą procedurę na piechotę. Jescze jedno w jaki sposób
zmieniać kolejne "numery" komórek pamięci w sytuacji zapisu kilku liczb wielobajtowych?
Mam jeszcze jedno pytanie, czy do transmisji wielobajtowej po I2C lepiej użyć instrukcji
I2CSEND i I2CRECEIV czy napisać całą procedurę na piechotę. Jescze jedno w jaki sposób
zmieniać kolejne "numery" komórek pamięci w sytuacji zapisu kilku liczb wielobajtowych?
myślę ze nie ma sensu wysyłać bajt po bajcie - skoro masz polecenie służące do wysyłania i odbierania bajtów za bajtem to nie ma sensu się bawić w wysyłanie i odbieranie
Szczerze to ja nie miałem nigdy potrzeby wysyłać więcej niż jeden bajt więc używałem do tej pory tylko I2CWBYTE I2CRBYTE
jezeli i2csend służy do wielobajtowego przesyłania danych to musi miec wbudowany jakis licznik bajtow
jezeli natomiast uzyjesz i2cwbyte i i2crbyte pewnie bedziesz musiał użyć jakiegoś wlasnego licznika
Szczerze to ja nie miałem nigdy potrzeby wysyłać więcej niż jeden bajt więc używałem do tej pory tylko I2CWBYTE I2CRBYTE
jezeli i2csend służy do wielobajtowego przesyłania danych to musi miec wbudowany jakis licznik bajtow
jezeli natomiast uzyjesz i2cwbyte i i2crbyte pewnie bedziesz musiał użyć jakiegoś wlasnego licznika
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 83 gości