Цитата(AVRdeveloper @ Jul 24 2008, 19:43)

Всем доброе время суток! У меня проблема с DS1307. Использую Мегу16
После инициализации МК произвожу чтение с этой МС раз в секунду таким способом:
Первый байт принимаеться каждый раз с новым значением, а второй - постоянно $FF
Как принять последовательность из нескольких байт?
call TWI_init ; инитим I2C МК
call TWI_stop
call TWI_start
ldi r16,0b11010001
call TWI_send_adr
ldi r16,0 ; r16 используеться для передачи след. ф.-ии значений
call TWI_send_data
call get_byte1 ; При приеме первого байта считываеться случаqное число регистра данных TWI
call get_byte2 ; При приеме второго байта постоянно принимается $FF
call TWI_stop
..
..
если не ошибаюсь, 0b11010001 ==0xD1, вот что написанов даташите на ds1307:
Цитата
The device’s slave address is D0h and cannot be modi-fied by the user. When the R/W bit is 0 (such as in D0h), the master is indicating it writes data to the slave. If R/W = 1 (D1h in this case), the master is
indicating it wants to read from the slave. If an incor-rect slave address is written, the device assumes the
master is communicating with another I2C device and ignore the communication until the next START condi-tion is sent.
а для считывания необходимо повторный рестарт делать
go forth