A Bascom alapesetben az időzítéseket ASM rutinban üres ciklussal oldja meg.Ez viszont problémákat okoz kritikus időzítéseknél. ilyen például a grafikus LCD-k kezelésekor az adatkiírás a chipre.
A vezérlő ASM rutin javítása:
_gwrite_cmd:
* Cbi _glcd_portm , _glcd_cd ; Command
Rjmp _Gwrite_DataMisc ; same code
_gwrite_data:
* Sbi _glcd_portm , _glcd_cd ; Data
_gwrite_datamisc:
@genus(5)
* Out _glcd_port , R24 ; Write
* Cbi _glcd_portm , _glcd_rd ; Write Low
* Sbi _glcd_portm , _glcd_enable ; Enable Chip
@genus(1)
* Cbi _glcd_portm , _glcd_enable ; Disable Chip
;rcall _gRead_Status
Ret
Meg kell próbálni megnövelni a @genus(1)-et @genus(2)-re vagy magasabb értékre.
Vagy.....
A ;-t a ;rcall _gRead_Status elől ki kell venni, így BUSY állapotban nem küld új adatot a mikrokontoller....