Hallo,
ich versuche gerade den DS1302 ein paar Sekunden zu entlocken.DS1302.pdf
Befehle schreibe ich so (funktioniert):
Auslesen so (funktioniert nicht ganz):Code:Settime: Config Rtc_in = Output Set Rtc_rst Waitms 1 Rtc_cmd = &H8E Rtc_data = &B00000000 Shiftout Rtc_out , Rtc_clk , Rtc_cmd , 3 , 8 , 200 Shiftout Rtc_out , Rtc_clk , Rtc_data , 3 , 8 , 200 Waitms 1 Reset Rtc_rst . . . Return
Settime funktioniert.Code:Gettime: Rtc_cmd = &H81 ' read seconds Config Rtc_in = Output Set Rtc_rst Waitms 1 Shiftout Rtc_out , Rtc_clk , Rtc_cmd , 3 , 8 , 500 Config Rtc_in = Input Shiftin Rtc_in , Rtc_clk , Rtc_bytes , 2 , 8 , 500 Config Rtc_in = Output Waitms 1 Reset Rtc_rst Return
Das Problem ist nun das beim schreiben des Befehls mittels Shiftout das erste BIT für den folgenden Shiftin schon mit ausgegeben wird der mir dann in meinen rtc_bytes fehlt.
Folge ist, das nur alle 2 Sekunden gezählt wird und bei 5 schon eine 10er Stelle gezählt wird.
Wie könnte ich mit Bascom die letzte fallende Flanke vom Shiftout im Shiftin mit berücksichtigen?
Diese Lösung hat bei mir nicht funktioniert. (Habs aber auch nicht verstanden, warum es so funktionieren sollte)
http://www.mikrocontroller.net/topic/249885
Vielen Dank für Eure Hilfe.
mfG
Mario







Zitieren


Lesezeichen