Witam.
Zmontowałem pewien układ z PCF8583 podłączonym do Atmegi16. Podłączenie jest zrealizowane tak, że SDA w PCF jest podłączone do PD7 w atmedze, natomiast SCL do PD6. Linie podłączyłem poprzez rezystory 4,7k do plusa. A0 podłączone jest do masy.
Poniżej przedstawiam fragment kodu w BascomAVR:
Problem polega na tym, że na wyświetlaczu mam cały czas 165:165:165. Wygląda to tak, jakby układ w ogóle nie liczył.
Zmontowałem pewien układ z PCF8583 podłączonym do Atmegi16. Podłączenie jest zrealizowane tak, że SDA w PCF jest podłączone do PD7 w atmedze, natomiast SCL do PD6. Linie podłączyłem poprzez rezystory 4,7k do plusa. A0 podłączone jest do masy.
Poniżej przedstawiam fragment kodu w BascomAVR:
$regfile = "m16def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Cursor Off
Enable Interrupts
Config Sda = Portd.6
Config Scl = Portd.7
I2cinit
Dim H As Byte , M As Byte , S As Byte
Do
I2cstart
I2cwbyte 160
I2cwbyte 2
I2cstart
I2cwbyte 161
I2crbyte S , Ack
I2crbyte M , Ack
I2crbyte H , Nack
I2cstop
H = Makedec(h)
M = Makedec(m)
S = Makedec(s)
Locate 1 , 1
Lcd H ; ":" ; M ; ":" ; S
Loop
End
Problem polega na tym, że na wyświetlaczu mam cały czas 165:165:165. Wygląda to tak, jakby układ w ogóle nie liczył.