Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 14:37 11 Nov 2025 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

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 Kingdom
Posts: 10570
Posted: 08:04pm 15 Feb 2018
Copy link to clipboard 
Print this post

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







Edited by matherp 2018-02-17
 
IanT

Senior Member

Joined: 29/11/2016
Location: United Kingdom
Posts: 115
Posted: 09:19am 16 Feb 2018
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 10570
Posted: 09:16am 23 Feb 2018
Copy link to clipboard 
Print this post

Updated manual

2018-02-23_191643_Micromite_eXtreme_Manual.pdf
 
astro1
Regular Member

Joined: 26/06/2016
Location: Australia
Posts: 53
Posted: 05:27am 04 Mar 2018
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 10570
Posted: 09:45am 04 Mar 2018
Copy link to clipboard 
Print this post

  Quote  Anyone else seeing issues with GPS command not responding with valid data?


See this thread
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10570
Posted: 10:17am 04 Mar 2018
Copy link to clipboard 
Print this post

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: France
Posts: 15
Posted: 08:00am 30 Mar 2018
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 10570
Posted: 08:06am 30 Mar 2018
Copy link to clipboard 
Print this post

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



Edited by matherp 2018-03-31
 
frederic
Newbie

Joined: 30/03/2018
Location: France
Posts: 15
Posted: 11:51am 30 Mar 2018
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 2959
Posted: 04:12pm 30 Mar 2018
Copy link to clipboard 
Print this post

@frederic

Ensure you issue a OPTION LCDPANEL DISABLE first; then type the 'new' LCDPANEL parameters

WW
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10570
Posted: 04:18pm 30 Mar 2018
Copy link to clipboard 
Print this post

  Quote  option lcdpanel SSD1963_4_16_buff,l


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: France
Posts: 15
Posted: 05:47pm 30 Mar 2018
Copy link to clipboard 
Print this post

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: Italy
Posts: 313
Posted: 07:47am 31 Mar 2018
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 4126
Posted: 09:44am 31 Mar 2018
Copy link to clipboard 
Print this post

  frederic said   is it possible to use MMX interpreter for commercial application ?

thanks
fred


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 Kingdom
Posts: 10570
Posted: 10:12am 31 Mar 2018
Copy link to clipboard 
Print this post

  Quote  another little question :
is it possible to use MMX interpreter for commercial application ?


From Geoff's site, and the same applies to my contribution to the MMX

  Quote  New License

My new license is simple, it is still open source, it is just not based on the GNU GPL. It says (in summary) that the executable program produced by me is free to be distributed in any way for any purpose. The source is freely available and can be modified for personal use but it, and any executables generated from it, may not be distributed without first consulting me and obtaining my permission.
 
PicFan
Senior Member

Joined: 18/03/2014
Location: Austria
Posts: 133
Posted: 12:13pm 25 May 2018
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 10570
Posted: 01:21pm 25 May 2018
Copy link to clipboard 
Print this post

  Quote  Is the command "Static" implemented in the "Micromite extreme"?


No: Geoff hasn't released the code yet as the MM+ version is still in beta
 
PicFan
Senior Member

Joined: 18/03/2014
Location: Austria
Posts: 133
Posted: 08:26pm 26 May 2018
Copy link to clipboard 
Print this post

Yes, ok - thank you !
 
PicFan
Senior Member

Joined: 18/03/2014
Location: Austria
Posts: 133
Posted: 08:57am 07 Jun 2018
Copy link to clipboard 
Print this post

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 Kingdom
Posts: 10570
Posted: 09:08am 07 Jun 2018
Copy link to clipboard 
Print this post

  Quote  Please, can you help me with this problem ?


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 problemEdited by matherp 2018-06-08
 
     Page 1 of 2    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025