Otóż od dłuższego czasu z powodzeniem bawię się eepromami at24c256 za pomocą atmegi8. Z łatwością mogłem zczytywać dane i je zapisywać. Atmega była taktowana wewnętrznym kwarcem 8MHz. Ale ostatnio chciałem zbudować projekcik, do którego nie był potrzebny taki procek jak Mega i dlatego zapragnąłem wykrozystać Attiny2313. Podłączyłem podobnie jak do ATmegi8, dałem rezystorki podciągające 4,7K itd... Ustawiłem Fusy(nic strasznego) tak by procek działał z zewnętrznym kwarcem 16MHz(potrzebna była szybkość wieksza niż
Kod: Zaznacz cały
$regfile = "attiny2313.dat"
$crystal = 16000000
Config Scl = Portd.6
Config Sda = Portd.5
'Config I2cdelay = 1
Config Portd.4 = Output
Config Portb = Output
Declare Function Czytaj(byval Adres As Word)as Byte
Dim Zawartosc As Byte
Dim Licznik As Word
Zawartosc = 0
Licznik = 0
Set Portd.4
Wait 1
Reset Portd.4
Do
Zawartosc = Czytaj(licznik)
Portb = Zawartosc
Incr Licznik
If Licznik > 32678 Then
Licznik = 0
Toggle Portd.4
Wait 1
Toggle Portd.4
End If
Loop
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
I2cwbyte Msb
I2cwbyte Lsb
I2cstart
I2cwbyte 161
I2crbyte Dane , Nack
I2cstop
Czytaj = Dane
End Function
