Witam Szanownych Kolegów i BARDZO proszę o pomoc.
Chciałbym z pakietu Bascom 8051 sterować wyświetlaczem z samochodu Opel, który pracuje na "zmodernizowanej" szynie I2C - dodana została dodatkowa linia MRQ (linia rozkazowa - Master Request?). W sieci dwóch gości opisało sposób transmisji, który zasadniczo nie różni się od I2C poza wystawianiem sygnałui "0" w czasie transmisji danych do wyświetlacza - oto linki:
http://www.carluccio.de/index.php?page=pro-tid
http://www.eelkevisser.nl/bulot.htm
Ponoć bez problemu można sterować tym wyświetlaczem z poziomu Bascoma (tak przynajmniej twierdzi Dario Carluccio), mnie jednak się nie udało - nie pokazuje nic. Oto program (zresztą typowy):
Config Scl = P3.0
Config Sda = P3.1
Config I2cdelay = 1
' P1.2 bedzie asygnowane jako MRQ
Do ' glowna petla programu
P1.2 = 0 ' MRQ na logiczne "0"
Waitms 1 ' czeka 1 ms
P1.2 = 1 ' MRQ na logiczne "1"
I2cstart ' inicjuje magistrale
I2cwbyte &H4D ' wysyla adres TIDa - 4Dh
P1.2 = 0 ' MRQ na logiczne "0"
I2cwbyte 1 ' wygasza wszystkie piktogramy (3 bajty)
I2cwbyte 1 ' czyli pierwsze 3 bajty danych do wyświetlacza
I2cwbyte 1
I2cwbyte 164 ' wysyla napis do TIDa (10 bajtow)
I2cwbyte 220
I2cwbyte 196
I2cwbyte 203
I2cwbyte 229
I2cwbyte 233
I2cwbyte 64
I2cwbyte 174
I2cwbyte 93
I2cwbyte 64 ' ostatni bajt danych
P1.2 = 1 ' MRQ na logiczne "1"
I2cstop ' konczy transmisje i zwalnia magistrale
Waitms 255 ' czeka 0.25s i powtarza petle
Loop
End
Próbowałem w pętli z innymi adresami, próbowałem zwiększać I2cdelay ale bez efektu. Bardzo proszę o pomoc - może to jakiś bugs. Nie wiem też bo ponoć dane do wyświetlacza są wysyłane tak: 7 bitów danych, bit kontroli parzystości i bit potwierdzenia ale w Bascomie nie ma jak tego zmieniać. POMOCY... robiw
Chciałbym z pakietu Bascom 8051 sterować wyświetlaczem z samochodu Opel, który pracuje na "zmodernizowanej" szynie I2C - dodana została dodatkowa linia MRQ (linia rozkazowa - Master Request?). W sieci dwóch gości opisało sposób transmisji, który zasadniczo nie różni się od I2C poza wystawianiem sygnałui "0" w czasie transmisji danych do wyświetlacza - oto linki:
http://www.carluccio.de/index.php?page=pro-tid
http://www.eelkevisser.nl/bulot.htm
Ponoć bez problemu można sterować tym wyświetlaczem z poziomu Bascoma (tak przynajmniej twierdzi Dario Carluccio), mnie jednak się nie udało - nie pokazuje nic. Oto program (zresztą typowy):
Config Scl = P3.0
Config Sda = P3.1
Config I2cdelay = 1
' P1.2 bedzie asygnowane jako MRQ
Do ' glowna petla programu
P1.2 = 0 ' MRQ na logiczne "0"
Waitms 1 ' czeka 1 ms
P1.2 = 1 ' MRQ na logiczne "1"
I2cstart ' inicjuje magistrale
I2cwbyte &H4D ' wysyla adres TIDa - 4Dh
P1.2 = 0 ' MRQ na logiczne "0"
I2cwbyte 1 ' wygasza wszystkie piktogramy (3 bajty)
I2cwbyte 1 ' czyli pierwsze 3 bajty danych do wyświetlacza
I2cwbyte 1
I2cwbyte 164 ' wysyla napis do TIDa (10 bajtow)
I2cwbyte 220
I2cwbyte 196
I2cwbyte 203
I2cwbyte 229
I2cwbyte 233
I2cwbyte 64
I2cwbyte 174
I2cwbyte 93
I2cwbyte 64 ' ostatni bajt danych
P1.2 = 1 ' MRQ na logiczne "1"
I2cstop ' konczy transmisje i zwalnia magistrale
Waitms 255 ' czeka 0.25s i powtarza petle
Loop
End
Próbowałem w pętli z innymi adresami, próbowałem zwiększać I2cdelay ale bez efektu. Bardzo proszę o pomoc - może to jakiś bugs. Nie wiem też bo ponoć dane do wyświetlacza są wysyłane tak: 7 bitów danych, bit kontroli parzystości i bit potwierdzenia ale w Bascomie nie ma jak tego zmieniać. POMOCY... robiw