Újonc vagyok itt a fórumon,kb fél éve kezdtem foglalkozni az avr ek lelkivilágával.Egyenlőre az alapalkalmazásokat próbálgatom végig.
Megvolt a ledvillogtatás;lcd kezelés;pwm;gombok lekezelése stb.
Most jutottam el az IIC részhez és mindjárt akadályba ütköztem.
Akadt kéznél egy X24C16 os eeprom,a problémám ezzel kapcsolatos .
Írtam egy progit ami elvileg teleírná az eepromot 0-255 ig értékekkel,majd túlcsordulva ismét 0-255 ig amig a teljes terület meg nem tellik.
Amikor ez megvan akkor ponyproggal kiolvasom,ott jól látszik vizuálisan ,hogy mi lett az írás eredménye.
Sajnos megnézve azt látom ,hogy csak 256 bit et ír meg ez eddig jó is a megfelelő értékek íródnak bele,de akárhogy is gyúrom a progimat a többi területre nem tudok írni,magyarán nem tudom megcímezni azt.
Biztos,hogy valami alap dolgon hasalok el,de utánaolvasgatva sem találtam rá megoldást,ezért fordulok hozzátok.
Előre is köszönöm az ötleteket.
Kód: Egész kijelölése
$regfile = "M8def.dat"
$crystal = 4000000
$baud = 9600
$swstack = 128
$hwstack = 128
$framesize = 128
Config I2cdelay = 20
Config Sda = Portc.4
Config Scl = Portc.5
Config Pind.6 = Output
Dim X As Byte
Dim Cim As Integer
Dim Adatbe As Byte
I2cinit
Const Icwrite = &HA0
Const Icread = &HA1
X = 0
For Cim = 0 To 2048
Adatbe = X
Set Portd.6
I2cstart
I2cwbyte Icwrite
I2cwbyte Cim
I2cwbyte Adatbe
I2cstop
Waitms 20
Print "cim " ; Cim
Print "adatbe " ; Adatbe
X = X + 1
Next Cim
Reset Portd.6
End