What about if you try slower baudrate... as slow as you can ? simple thought here because i solve many of my noise problem with that...
AND NOW let's shrink this part of your code
Code:
'*****************************************
DISABLE
TIMER_INTERRUPT:
PIR1.0 = 0
TMR1TEMP.LOWBYTE = TMR1L
TMR1TEMP.HIGHBYTE = TMR1H
TMR1SET=TIMER1PRE+TMR1TEMP
TMR1L=TMR1SET.LOWBYTE
TMR1H=TMR1SET.HIGHBYTE
LCDOUT $FE,$C0
IF DAY = 1 THEN
LCDOUT "MON"
ENDIF
IF DAY = 2 THEN
LCDOUT "TUE"
ENDIF
IF DAY = 3 THEN
LCDOUT "WED"
ENDIF
IF DAY = 4 THEN
LCDOUT "THU"
ENDIF
IF DAY = 5 THEN
LCDOUT "FRI"
ENDIF
IF DAY = 6 THEN
LCDOUT "SAT"
ENDIF
IF DAY = 7 THEN
LCDOUT "SUN"
ENDIF
LCDOUT $FE,$C3
LCDOUT #H2
LCDOUT #H1
LCDOUT ":"
LCDOUT #M2
LCDOUT #M1
LCDOUT ":"
LCDOUT #S2
LCDOUT #S1
LCDOUT $FE,$CC
LCDOUT #REC
LCDOUT " "
LCDOUT #T2
LCDOUT #T1
RESUME
ENABLE
it has to work but gives you a load of delay IMO.
this is my own version
Code:
'*****************************************
DISABLE
TIMER_INTERRUPT:
PIR1.0 = 0
TMR1TEMP.LOWBYTE = TMR1L
TMR1TEMP.HIGHBYTE = TMR1H
TMR1SET=TIMER1PRE+TMR1TEMP
TMR1L=TMR1SET.LOWBYTE
TMR1H=TMR1SET.HIGHBYTE
LCDOUT $FE,$C0
select case DAY
case 1
LCDOUT "MON"
case 2
LCDOUT "TUE"
case 3
LCDOUT "WED"
case 4
LCDOUT "THU"
case 5
LCDOUT "FRI"
case 6
LCDOUT "SAT"
case 7
LCDOUT "SUN"
end select
LCDOUT $FE,$C3,#H2,#H1,":",#M2,#M1,":",#S2,#S1
LCDOUT $FE,$CC,#REC," ",#T2,#T1
RESUME
ENABLE
and probably LCDOUT in one shot can also work
Code:
LCDOUT $FE,$C3,#H2,#H1,":",#M2,#M1,":",#S2,#S1,_
$FE,$CC,#REC," ",#T2,#T1
Bookmarks