Clock Module + Screen Failure

jopooze

Member
I created a program in which I can use a clock module and a iButton reader simultaneously. It worked for a long period of time however now has decided to bug out. The screen used to display the time in hours/minutes/seconds/PM or AM. It now displays >=.??.?? PM. Can someone tell me what's happened? I'm guessing I may have fried the clock module. Here's the program;

wait 2

serout b.3,n2400,(254,128)
pause 50

SYMBOL character1 = B15
SYMBOL character2 = B16
SYMBOL character3 = B17
SYMBOL character4 = B18
SYMBOL character5 = B19
SYMBOL character6 = B20
SYMBOL hours = B21
SYMBOL mins = B22
SYMBOL secs = B23
SYMBOL day = B24
SYMBOL date = B25
SYMBOL month = B26
SYMBOL year = B27
SYMBOL PM_AM = B0
serout b.3,n2400,(254,1)
pause 50

Program:
HI2Csetup I2Cmaster, %11010000, I2Cslow, I2Cbyte ' set to 100kbps
HI2Cout $0, ( $00,$00 ,$19 ,day,date,month,year) ' write time to DS1307 example (11.58.00 PM)
'prog time (secs,mins,hours,day,date,month,year) ' enter hours in 24 hour format ($0 to $23)

Main:

swap b2,b15
swap b3,b16
swap b4,b17
swap b5,b18
swap b6,b19
swap b7,b20
swap b8,b21
swap b9,b22
swap b10,b23
swap b11,b24
swap b12,b25
swap b13,b26
swap b14,b27
swap b15,b0


HI2Csetup I2Cmaster, %11010000, I2Cslow, I2Cbyte
HI2Cin $0, (secs,mins,hours,day,date,month,year)

ClockDisplay:
PM_AM ="P" : IF hours < $12 then :pM_AM = "A" : ENDIF 'indicate PM or AM

IF hours = $20 OR hours = $21 THEN : LET hours = hours - $6 : ENDIF
IF hours > $12 THEN : LET hours = hours - $12 : ENDIF '24 to 12 hour format
IF hours = $0 THEN : hours = $12 : ENDIF


BcdTOASCII hours,character1,character2 : IF character1 = "0" THEN : character1 = " " : ENDIF' zero blanking character1
BcdTOASCII mins ,character3,character4
BcdTOASCII secs ,character5,character6

Start:
let b6 = 0
let b7 = 0
let b8 = 0
let b9 = 0
let b10 = 0
let b11 = 0
let b12 = 0
let b13 = 0

Loop1:
readowsn b.2
if b6 =33 and b7 =38 and b8 =119 and b9 =1 and b10 =0 and b11 =32 and b12 =79 and b13 =163 then iButton1
if b6 =33 and b7 =216 and b8 =96 and b9 =1 and b10 =0 and b11 =32 and b12 =79 and b13 =239 then iButton2
Gosub Clock
Goto main

iButton1:
gosub ScreenClear
do while b6 =33 and b7 =38 and b8 =119 and b9 =1 and b10 =0 and b11 =32 and b12 =79 and b13 =163
serout b.3,n2400,(254,128)
pause 50
serout b.3,n2400,("iButton One")
pause 50
gosub ValueRewrite
loop
goto main

iButton2:
gosub ScreenClear
do while b6 =33 and b7 =216 and b8 =96 and b9 =1 and b10 =0 and b11 =32 and b12 =79 and b13 =239
serout b.3,n2400,(254,128)
pause 50
serout b.3,n2400,("iButton Two")
pause 50
gosub ValueRewrite
loop
goto main

Clock:
serout b.3,n2400,(254,128)
pause 50
serout b.3,n2400,(CR, LF,character1,character2,".",character3,character4,".",character5,character6," ",PM_AM,"M", CR, LF)
pause 50
return

ValueRewrite:
let b6 = 0
let b7 = 0
let b8 = 0
let b9 = 0
let b10 = 0
let b11 = 0
let b12 = 0
let b13 = 0
readowsn b.2
return
ScreenClear:
serout b.3,n2400,(254,1)
return
 

techElder

Well-known member
It worked for a long period of time
That statement suggests hardware failure. Could be as simple as a "wire came loose" type problem.

Now if you just changed some hardware aspect of your project, then that is where you should start looking.

Otherwise, the simplest troubleshooting technique is to exchange the major parts with new working parts.
 

john2051

New Member
Hi, out of curiosity, do you know how and why it blew? The reason I ask is that I would expect these modules to do their intended
task without blowing.
john
 

srnet

Senior Member
Hi, out of curiosity, do you know how and why it blew? The reason I ask is that I would expect these modules to do their intended
task without blowing.
john
Indeed, modules like this dont just 'blow' you normally have to do something bad to them.

Knowing what was done to cause the failure would help everyone else to avoid the same failure.
 
Top