dj_cyborg
14.02.2014, 09:25
Hallo,
ich versuche gerade den DS1302 ein paar Sekunden zu entlocken.27496
Befehle schreibe ich so (funktioniert):
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
Auslesen so (funktioniert nicht ganz):
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
Settime funktioniert.
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. 27497
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
ich versuche gerade den DS1302 ein paar Sekunden zu entlocken.27496
Befehle schreibe ich so (funktioniert):
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
Auslesen so (funktioniert nicht ganz):
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
Settime funktioniert.
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. 27497
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