O ile wywnioskowałem to ten układ komunikuje się za pomocą I2c. Znalazłem protokół przesyłu i rejestry (na przykład rejestr ruchu x i y, oraz co najciekawsze jeden rejestr moze byc wykorzystany do skanowania obrazu z niewielką rodzielczością- Można z niego rpzechwycić obraz 18*18 pikseli z wbu8dowanej w układ matrycy CCD). Chciałbym za pomocą procesora AVR (bascom) odczytywać z niego dane jak z pamieci eeprom. Tam jest rozpisane: który rejestr(bajt) jaką informację niesie. Nie moge tylko znalećc w nocie jaki jest adres bazowy do odczytu i zapisu tego układu (tak jak na przykłąd dla eepromu 160 i 161). Pomóżcie jeśli wiecie coś na ten temat proszę.
[ Dodano: 2008-06-25, 19:12 ]
Ten gość zrobił coś podobnego ale za pomoca komputera odczytywał dane z rejestru matrycy ccd tak, że mógł odczytywać obraz widziany przez tą prymitywnę "kamerę" --> http://spritesmods.com/?art=mouseeye
dla eepromu at24c256 moja funkcja odczytu wygląda tak:
Kod: Zaznacz cały
Function Czytaj(byval Adres As Word) As Byte
Local Msb As Byte
Local Lsb As Byte
Local Dane As Byte
Lsb = Adres And 255
Shift Adres , Right , 8
Msb = Adres And 255
I2cstart
I2cwbyte 160 'adres bazowy-zapis
I2cwbyte Msb 'adres
I2cwbyte Lsb ' adres
I2cstart
I2cwbyte 161 ' adres bazowy-odczyt
I2crbyte Dane , Nack
I2cstop
Czytaj = Dane
End Function
[ Dodano: 2008-06-25, 19:52 ]
Znalazłem coś co może pomoże wam mi pomóc. Ocyfrowałem część tego programu na komputer, który napisał ten gość. Nie potrafię odczytać z tego kodu adresu, ale może komuś kto bardziej się na tym zna się uda. To funkcja odczytu i procedura zapisu jak widać. Ale gdzie są adresy bazowe układu i adresy rejestrów? Proszę o wytłumaczenie jeśli ktoś to rozumie.
Kod: Zaznacz cały
Private Sub spisend(a As Integer, d As Integer)
Dim p, n, x As Integer
p = Val(portsel.Text)
a = a Or &H80
For x = 7 To 0 Step -1
If (a And (2 ^ x)) <> 0 Then n = 8 Else n = 0
Out p, n
Out p, n + &H80
Next
For x = 7 To 0 Step -1
If (d And (2 ^ x)) <> 0 Then n = 8 Else n = 0
Out p, n
Out p, n + &H80
Next
End Sub
Private Function spirecv(a As Integer)
Dim p, n, d, x As Integer
Dim t As Single
p = Val(portsel.Text)
a = a And &H7F
For x = 7 To 0 Step -1
If (a And (2 ^ x)) <> 0 Then n = 8 Else n = 0
Out p, n
Out p, n + &H80
Next
Out p, n + &H80
Out p, n + &H80
n = 8: d = 0
For x = 7 To 0 Step -1
Out p, n
Out p, n + &H80
' t! = Timer + 0.0001: While t! > Timer: DoEvents: Wend
d = d * 2
If (Inp(p + 1) And &H20) <> 0 Then d = d + 1
Next
spirecv = d
End Function