|
Forum Index : Microcontroller and PC projects : Micromite eXtreme 5.04.14: Sprites on TFT
| Page 1 of 2 |
|||||
| Author | Message | ||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10570 |
Please find attached MMX5.04.14 for 100/144 pin parts 2018-02-16_045942_MMX5.04.14.zip and for 64-pin parts 2018-02-16_050002_MMX645.04.14.zip Changes are: allows OPTION LCDPANEL USER to be used in a program. NB this option is not permanent and needs to be set again after a reboot. Implements new drivers for 16-bit parallel ILI9341, SPI ILI9341, SPI ili9481, and 16-bit parallel 4.3" SSD1963 using an in-memory framebuffer. By default the Micromite eXtreme has 469K bytes of available RAM for use in user programs. This is much more than is normally needed given that the program is stored in flash memory and that will hold a program of up to 544K. This release optionally uses some of that available RAM as a framebuffer for various displays in order to overcome some of the limitations of directly addressing the TFT display. This is best explained by watching a video of sprites running on a 4.3" SSD1963 display using a driver with and without the framebuffer. The mechanism of moving a sprite is as follows: 1. replace the sprite with the stored background 2. scroll the background 3. save the background for the new position of the sprite 4. re-display the sprite The effect of this can clearly be seen in the first part of the video where the sprite flashes repeatedly and is only barely visible between loops of the program. By using a framebuffer, all of these steps can take place within the memory of the Micromite and only when they are completed the complete area affected is written to the screen as a single operation. Of course this approach is not only useful for sprites but can make any sort of animation look much better. The user has complete control of when the screen is rewritten. By default each Basic statement that updates the screen will cause a write to the TFT panel (a sprite move is a single Basic statement). However there are two statements that allow the user to override this. OPTION AUTOREFRESH OFF will stop drawing statements updating the screen and just the framebuffer will be updated. OPTION AUTOREFRESH ON will cause the display to be updated to the current status of the framebuffer So for example the pseudo code for updating an analog clock display might be: OPTION AUTOREFRESH OFF REPLACE HANDS WITH BACKGROUND REWRITE HANDS IN NEW POSITION OPTION AUTOREFRESH ON The new drivers are enabled as follows: All MMX OPTION LCDPANEL ILI9341_BUFF, orientation, DCpin, resetpin, chipselectpin This uses 150K of memory leaving 319K for user programs (320x240x2 = 153,600 /1024 = 150). Time to write entire screen (cls rgb(red)) 29mSec. Time to scroll entire screen 49mSec OPTION LCDPANEL ILI9481_BUFF, orientation, DCpin, resetpin, chipselectpin This uses 300K of memory leaving 169K for user programs (480x320x2 = 307,200 /1024 = 300). Time to write entire screen (cls rgb(red)) 156mSec. Time to scroll entire screen 194mSec 100/144 pin only OPTION LCDPANEL ILI9341_16_BUFF, orientation, DCpin, resetpin, chipselectpin This uses 150K of memory leaving 319K for user programs (320x240x2 = 153,600 /1024 = 150). Time to write entire screen (cls rgb(red)) 10mSec. Time to scroll entire screen 30mSec OPTION LCDPANEL SSD1963_4_16_BUFF, orientation, DCpin, resetpin, chipselectpin This uses 255K of memory leaving 213K for user programs (480x272x2 = 261,120 /1024 = 255). Time to write entire screen (cls rgb(red)) 16mSec. Time to scroll entire screen 50mSec |
||||
| IanT Senior Member Joined: 29/11/2016 Location: United KingdomPosts: 115 |
How many are there in Team 'Matherp' - and what sort of shift patterns do you work? Amazing! IanT |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10570 |
Updated manual 2018-02-23_191643_Micromite_eXtreme_Manual.pdf |
||||
| astro1 Regular Member Joined: 26/06/2016 Location: AustraliaPosts: 53 |
Anyone else seeing issues with GPS command not responding with valid data? Open "com1:9600" As GPS,11 Print GPS(valid) Print GPS(date) Print GPS(time) Reads Ok on v8/9. |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10570 |
See this thread |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10570 |
Update to fix the GPS bug and also allow a PWM duty cycle of zero. No change of version number 100/144-pin 2018-03-04_201632_MMX5.04.14.zip 64-pin 2018-03-04_201727_MMX645.04.14.zip |
||||
| frederic Newbie Joined: 30/03/2018 Location: FrancePosts: 15 |
Hi everybody, new for me on this forum, with a limited english !!! i am working on my own pcb for MMX 144pin, with HEX from 2018-03-04_201632_MMX5.04.14.zip everything is working well except 4.3" display OPTION LCDPANEL SSD1963_7,L ok for 7" OPTION LCDPANEL SSD1963_7_16,L ok for 7" OPTION LCDPANEL SSD1963_5,L ok for 5" OPTION LCDPANEL SSD1963_5_16,L ok for 5" OPTION LCDPANEL SSD1963_4,L not working for 4.3" OPTION LCDPANEL SSD1963_4_16,L not working for 4.3" of course, i checked with several 4.3" displays, i checked these 4.3" displays on another board, working well on MMB+ so displays are ok, i produce a second MMX 144 board for checking on another board same result, not working with 4.3" ????? i tried also : OPTION LCDPANEL SSD1963_4,L with a 5" of course 800x480 for 480x272 give a funny double display , but is working well i need a little help fred |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10570 |
fred I've noticed some 4.3" displays seem to react slower than other sizes. The current code works with my 4.3" displays but one of them was a bit marginal whereas, as you say, 5" and 7" displays are fine. I can't do anything at the moment (in the Var) but will post a slowed down version late next week for you to try. Have you tried the buffered driver? SSD1963_4_16_buff |
||||
| frederic Newbie Joined: 30/03/2018 Location: FrancePosts: 15 |
thanks for this quick answer, happy to ear that you got the same trouble i tried : option lcdpanel SSD1963_4_16_buff,l not accept : CPU exception #0 at address 0x99760462 processor restarted oups!!!! thanks |
||||
| WhiteWizzard Guru Joined: 05/04/2013 Location: United KingdomPosts: 2959 |
@frederic Ensure you issue a OPTION LCDPANEL DISABLE first; then type the 'new' LCDPANEL parameters WW |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10570 |
option lcdpanel SSD1963_4_16_buff,l,n You must specify the RD pin number. The code should trap for that I'll fix it in the next release |
||||
| frederic Newbie Joined: 30/03/2018 Location: FrancePosts: 15 |
option lcdpanel SSD1963_4_16_buff,l,142 is working well, well, well thank you so much for your great job and help, another little question : is it possible to use MMX interpreter for commercial application ? thanks fred |
||||
sagt3k![]() Guru Joined: 01/02/2015 Location: ItalyPosts: 313 |
Hi Frederic We must ask Geoff . But the use of MMbasic is free (without modifying and redistributing the code), so it is possible to flash the boards that project and sell only the HW that develops, describing the paternity of the firmware.Antonio |
||||
| JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 4126 |
I suppose you need the permission of everyone whose code is in it. (As you do to use it at all.) I think there's some info on Geoff's web site(s) but you'd need to check with everyone else as well. John |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10570 |
From Geoff's site, and the same applies to my contribution to the MMX |
||||
| PicFan Senior Member Joined: 18/03/2014 Location: AustriaPosts: 133 |
A question: Is the command "Static" implemented in the "Micromite extreme"? If so, in which version? Thanks and best regards ! Wolfgang |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10570 |
No: Geoff hasn't released the code yet as the MM+ version is still in beta |
||||
| PicFan Senior Member Joined: 18/03/2014 Location: AustriaPosts: 133 |
Yes, ok - thank you ! |
||||
| PicFan Senior Member Joined: 18/03/2014 Location: AustriaPosts: 133 |
Hello Peter ! Please, can you help me with this problem ? Please look on this post. Problem Thank you and best regards ! Wolfgang |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 10570 |
No - sorry, this is in the guts of MMBasic and one for Geoff. It is also pretty obscure so may not be easy to find. Suggest you find a work round by avoiding multidimensional arrays UPDATE 5.3 doesn't seem to have the problem |
||||
| Page 1 of 2 |
|||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |