Witam serdecznie forumowiczów!
Mam mały problem z magistrala I2C i zewnętrzną pamięcią 24C16.
Komunikację mam opanowaną i jak narazie wiem jak wysłać i odebrać jakąś zmienną typu byte.
Teraz sprawa się komplikuje gdyż chciałbym wysyłać jakiś tekst do pamięci ale zaznaczam bez używania jakiegoś gotowego programatora do pamieci gdyż tekst wysyłałbym za pomocą RS-232 np. z terminala a nie za kazdym razem wkladal kostke do programatora.
Wie ktoś może jak to zrobić? Dodam że próbowałem już zamieniać zmienna typu byte na stringa ale kompilator wyrzuca mi bledy.
A to jest program do wysyłania i odbierania znaków z zew. pamieci:
Pozdrawiam Dawid.
Mam mały problem z magistrala I2C i zewnętrzną pamięcią 24C16.
Komunikację mam opanowaną i jak narazie wiem jak wysłać i odebrać jakąś zmienną typu byte.
Teraz sprawa się komplikuje gdyż chciałbym wysyłać jakiś tekst do pamięci ale zaznaczam bez używania jakiegoś gotowego programatora do pamieci gdyż tekst wysyłałbym za pomocą RS-232 np. z terminala a nie za kazdym razem wkladal kostke do programatora.
Wie ktoś może jak to zrobić? Dodam że próbowałem już zamieniać zmienna typu byte na stringa ale kompilator wyrzuca mi bledy.
A to jest program do wysyłania i odbierania znaków z zew. pamieci:
$regfile = "m32def.dat"
$crystal = 8000000
Config Lcdbus = 4
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pb.4 , Db5 = Pb.5 , Db6 = Pb.6 , Db7 = Pb.7 , E = Pb.3 , Rs = Pb.2
Config Scl = Porta.7
Config Sda = Porta.6
Declare Sub Write_eeprom(byval Adres As Byte , Byval Value As Byte)
Declare Sub Read_eeprom(byval Adres As Byte , Value As Byte)
Const Addressw = 174 'adres zapisu
Const Addressr = 175 'adres odczytu
Dim Adres As Byte , Value As Byte
Cls
cursor off
Call Write_eeprom(1 , 123) 'Zapisz dane pod (adres, dane)
Call Read_eeprom(1 , Value) : Locate 1 , 1 : Lcd Value 'Odczytaj je
'Zapis
Sub Write_eeprom(byval Adres As Byte , Byval Value As Byte)
I2cstart 'start
I2cwbyte Addressw 'adres zapisu
I2cwbyte Adres 'adres
I2cwbyte Value 'wartosc do wyslania
I2cstop 'stop
Waitms 10 'czekaj 10ms
End Sub
'Odczyt
Sub Read_eeprom(byval Adres As Byte , Value As Byte)
I2cstart 'start
I2cwbyte Addressw 'adres zapisu
I2cwbyte Adres 'adres e
I2cstart 'powtórz start
I2cwbyte Addressr 'adres odczytu
I2crbyte Value , Nack 'odczytane dane(koniec odczytu)
I2cstop 'stop
End Sub
Pozdrawiam Dawid.