My code does various things - reads pixel data from eeprom and sends it to display module via paralel interface, to show meaningful data to user. It interacts with TCXO, ADCs, serial wired leds, mp3 module, GPS module and a lot of other I/O. My code does no complex math, except increasing value of some variables and doing HEX<>DEC conversion for RTC.
Here's a small fragment from one of my 16F code. So moving to 18F, will deliver any speed increase for something like this?
Code:
ERASER: 'INITIAL DISPLAY SET TO ZERO
low LED
FOR Y=0 TO 15
LOC=Y
GOSUB LOCSET
X=11
GOSUB CODER
NEXT
pause 30
waiter: 'wait for keypress and display time
if lock=0 then goto beginner
pause 1000 'toggle led
toggle led
gosub gettime2
gosub timedisp
goto waiter
stop 'finish
coder: 'decode into cd4543 bcd
low strb
PORTD.0=x.2
PORTD.1=x.1
PORTD.2=x.3
PORTD.3=x.0
high strb
return
LOCSET:' SET THE DIGIT LOCATION
HIGH STRB
PORTD.4=loc.0
PORTD.5=loc.1
PORTD.6=loc.2
PORTD.7=loc.3
LOW STRB
'PAUSE 10
RETURN
gettime:
I2CRead SDA, SCL, $D0, $00, [RTCSec, RTCMin, RTCHour, RTCDay, RTCDate, RTCMonth, RTCYear, RTCCtrl]
t1=rtchour >> 4
t2=rtchour // 16
t3=rtcMin >> 4
T4=rtcMin // 16
'Z1=(RTCmin >> 4)*10+RTCmin // 16 'decode seconds
'Z2=(RTCHour >> 4)*10+RTCHour // 16 'decode hours
hours=T1*10+T2
minutes=T3*10+T4
if DRO<>rtcmin then 'check for time changes, so display only is refreshed when time is changed
cvlileba=1
else
cvlileba=0
endif
DRO=rtcmin
Return
Bookmarks