Korrekció 4MHz feletti kristály esetén...

Bascom, Wiring és Arduino frissítések, hátterei esetleges hibái
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Korrekció 4MHz feletti kristály esetén...

Hozzászólás Szerző: Robert »

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....
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A Bascom 1.11.9.0 verzióig 4 MHz-s kristályra volt megírva a driver. Az 1.11.9.1-ben már 16 MHz quartz esetén is működik!
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00

Hozzászólás Szerző: norbi »

Most már tudom, hogy miért van az, hogy néha a graf. lcd-s dolgaimon összezavarodik a kijelzőn megjelenített adat :wink:

Eddig egész más dologra gondoltam, rossz helyen kerestem a megoldást :roll:

Köszönjük az infót!!!
Válasz küldése