mkschreder / avr-vt100

AVR ATMega Terminal Emulator
82 stars 20 forks source link

how to use other lcd? #2

Open aldolo69 opened 5 years ago

aldolo69 commented 5 years ago

hi. these are the hardware specific calls:

ili9340_setFrontColor(term.front_color); ili9340_setBackColor(term.back_color); ili9340_fillRect(0, scroll_min, VT100_SCREEN_WIDTH, pixels, 0x0000); ili9340_drawChar(x, y, ch); ili9340_setScrollStart(scroll_start);
ili9340_setScrollMargins(0, 0); ili9340_setScrollStart(0);

do you remember the effects of the scroll related function?

mkschreder commented 5 years ago

As far as I recall the scroll function is described in ILI9340 datasheet. My conclusion however was that it really only makes sense to use the on display scroll function in cases where there is very little memory on the MCU as it is much easier to implement scroll in a generic way in the frame buffer than having to care about display specific scrolling for every display one decides to use. A framebuffer does however require the whole pictured to be in memory on the mcu rather than being accessible on the display over spi so one has to make a weighed choice there.

On Sat, Sep 22, 2018 at 10:59 AM aldolo notifications@github.com wrote:

hi. these are the hardware specific calls:

ili9340_setFrontColor(term.front_color); ili9340_setBackColor(term.back_color); ili9340_fillRect(0, scroll_min, VT100_SCREEN_WIDTH, pixels, 0x0000); ili9340_drawChar(x, y, ch); ili9340_setScrollStart(scroll_start); ili9340_setScrollMargins(0, 0); ili9340_setScrollStart(0);

do you remember the effects of the scroll related function?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mkschreder/avr-vt100/issues/2, or mute the thread https://github.com/notifications/unsubscribe-auth/AERqieqgyKMVu9yyAyqiA4BfQfWZ1dGHks5udfv1gaJpZM4W1L0r .

aldolo69 commented 5 years ago

of course i've ordered an ili9341 display, but i would like to use it in landscape mode so hardware scrolling is unavailable. i'll use an esp8266 which has got enough memory for a b/w display.

mkschreder commented 5 years ago

If you do not have enough memory to do image in memory and implement horizonal scrolling that way then your best bet is to use a microcontroller with more memory and/or external memory. The money you put into a slightly more expensive and more powerful chip you then get back through making software development a breeze. If you do not want to get a controller with more memory then you could put some effort into implementing a much slower variant where you read back a line of pixels from the display, store it in a small buffer on the chip and then write it back at a horizontal offset. I would personally get a controller with more memory though. I think for a display application your best bet is to use an stm32f429 with external sram for full color framebuffer and a tile bitmap for transferring only tiles that have changed over spi to the display. On Tue, Sep 25, 2018 at 4:34 PM aldolo notifications@github.com wrote:

of course i've ordered an ili9341 display, but i would like to use it in landscape mode so hardware scrolling is unavailable. i'll use an esp8266 which has got enough memory for a b/w display.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.