OK.
Wenn man das Dateblatt komplett liest findet man die Info, dass das DS1307 nur mit 100kHz arbeitet.
in der i2cmaster.S bin ich dann auf folgenden Code gestoßen
Code:
;*************************************************************************
; delay half period
; For I2C in normal mode (100kHz), use T/2 > 5us
; For I2C in fast mode (400kHz), use T/2 > 1.3us
;*************************************************************************
.stabs "",100,0,0,i2c_delay_T2
.stabs "i2cmaster.S",100,0,0,i2c_delay_T2
.func i2c_delay_T2 ; delay 5.0 microsec with 4 Mhz crystal
i2c_delay_T2: ; 4 cycles
rjmp 1f ; 2 "
1: rjmp 2f ; 2 "
2: rjmp 3f ; 2 "
3: rjmp 4f ; 2 "
4: rjmp 5f ; 2 "
5: rjmp 6f ; 2 "
6: nop ; 1 "
ret ; 3 "
.endfunc ; total 20 cyles = 5.0 microsec with 4 Mhz crystal
Da mein Assembler noch dürftiger ist als mein C komm ich mit dem Code überhaupt nicht zurecht. Kann mir jemand den Code abändern, damit das RTC bei 8MHz-takt meines Atmega8 mit 100kHz arbeitet?
Lesezeichen