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 (MMX) V5.07.00 betas
Page 1 of 4 | |||||
Author | Message | ||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
V5.07.00b0 100 and 144 pin Micromite.X.production.zip 64 pin Micromite.X.production.zip Use LIST COMMANDS and LIST FUNCTIONS to see the complete range of what is available. Highlights are: Many bug fixes as found in CMM2 and PicoMite testing Support for 16-bit parallel ILI9341, OTM8009A, and NT35510 displays (as per the ArmmiteF407 Previous command recall at the command prompt Support for * shortcut to run programs at the command prompt Support for MM.CMDLINE$ Support for EXECUTE, CALL, and CALL() commands and function Huge performance improvements for more complex programs MM.INFO(EXISTS FILE) MM.INFO(EXISTS DIR) Lots of other changes as per PicoMite (e.g. MID$ command functionality) Still to-do Major rework of audio to bring up to CMM2 standard Major rework of file handling to bring up to CMM2 standard Major rework of Sprites Find a decent FFT algorithm as the Microchip IDE doesn't appear to support complex.h Bug fixes as found |
||||
Pluto Guru Joined: 09/06/2017 Location: FinlandPosts: 357 |
Just loaded to a 64 pin MMX. Some problems to start. Noticed that it needs 115200 instead of the "normal" 38400 baud. Fred |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
Oops forgot to mention that. Will always be 115200 default going forward |
||||
athlon1900 Regular Member Joined: 10/10/2019 Location: AustriaPosts: 48 |
Thanks Peter What I would wish for is a free choice of SPI port for the displays, such as the SD card. Have a 100-pin chip where spi2 is defective. spi1 and spi3 are ok. That would be great. |
||||
Pluto Guru Joined: 09/06/2017 Location: FinlandPosts: 357 |
Peter, testing on a 64pin device with only a ILI9341 SPI LCD attached. (No SD card). option list OPTION CPU 252 OPTION AUTORUN ON OPTION LCDPANEL ILI9341, LANDSCAPE, 13, 15, 18 OPTION TOUCH 53, 48 OPTION HEARTBEAT ON > ?mm.ver 5.0701 > ?mm.device$ Micromite eXtreme, Microchip ID 0x67209053 I am having problems with OPTION AUTORUN ON. From time to time this OPTION disappears when the power has been switched off. It should be a permanent option! No problems with the other options. I am pleased to see that the MMX platform is getting maintenance as I have many of the 64, 100 and 144 chips in my boxes. For programming the chips I am using Geoff's MicroBridge. It takes normally a few attempts for each chip before the uploading starts. Thanks! Pluto |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
The only things that set autorun to off are the OPTION RESET, the OPTION AUTORUN command and the NEW command |
||||
disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 896 |
MMX Testing so far Can these be included to help with automated tests MM.INFO(NBRPINS) MM.INFO(LINE) TIMER is a float in latest systems, is integer in MMX SETPIN pin,CIN does not allow options [1-5] LIBRARY SAVE incorrectly copies normal code to Library This snippet from the Micromite LIBRARY SAVE command is where it should skip a blank the line.This is still tuned for the old line format which had a 3 characters as a header.This currently will only match a comment line which has two spaces before the comment character. i.e. ' This will be kept 'So will this ' this will be skipped. A command with no parameter but a trailing comment could be omitted. e.g. CLS 'Clear the screen **************** Current code ************************** if(*p == '\'' && !InQuote) { // found a modern remark char skipline(p); if(*(m-3) == 0x01) { m = TempPtr; // if the comment was the only thing on the line don't copy the line at all continue; } else p--; } The test for a comment for the Picomite and Armmite F4 is as below and seems to work OK. if((*(m-1) == 0x01) || ((*(m-2) == 0x01) && (*(m-1) == 0x20))){ This picks up a line starting with a comment. Multiple spaces are reduced to a single space so a comment indented using spaces is also matched, you just need to ensure the first character is actually a space and not a command token. ******** New code in Picomite and Armmite F4 *************** if(*p == '\'' && !InQuote) { // found a modern remark char skipline(p); //PIntHC(*(m-3)); PIntHC(*(m-2)); PIntHC(*(m-1)); PIntHC(*(m)); //MMPrintString("\r\n"); //if(*(m-3) == 0x01) { //Original condition from Micromites /* Check to see if comment is the first thing on the line or its only preceded by spaces. Spaces have been reduced to a single space so we treat a comment with 1 space before it as a comment line to be omitted. */ if((*(m-1) == 0x01) || ((*(m-2) == 0x01) && (*(m-1) == 0x20))){ m = TempPtr; // if the comment was the only thing on the line don't copy the line at all continue; } else p--; } Latest F4 Latest H7 |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
Not quite sure what you are saying on the library Does it ? 1 work but is inefficient 2 not work What is MM.INFO(LINES), is it really needed for testing? In the CMM2 it is used associated with include files Can't see it in the ArmmiteF407 code and don't have a variable LineCount in the MMX which is what the CMM2 returns Timer I can change but a bit pointless as it is only accurate to a mSec on the MMX Edited 2023-08-29 22:33 by matherp |
||||
Pluto Guru Joined: 09/06/2017 Location: FinlandPosts: 357 |
Can confirm. Program comments are not saved in the Library. Pluto |
||||
disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 896 |
? MM.INFO$(LINE) Returns the current line number as a string. Returns UNKNOWN if called from the command prompt and LIBRARY if current line is within the Library. Assists in diagnostics while unit testing. I was hoping to use it to predict what lineno an error should report. A call to MM.INFO$(LINE) before running the error test will indicate where it is located in the program.( I presume this is why Tom originally got it in the Picomites. It is in F4 as well) For the Library - Update -- See post below Timer OK as is. Regards Gerry Edited 2023-08-30 15:53 by disco4now Latest F4 Latest H7 |
||||
disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 896 |
Hi Peter, Library issue I have looked at the LIBRARY SAVE again and there is an issue where comment lines are not identified and are copied to the library. Also its possible some genuine commands are incorrectly omitted. This bit of nonsense code demonstrates the issue. print "hello I am first line" a$="4 comment lines follow -should not get to library" ' First comment 'First comment 'First comment 'First comment a$="check line numbers and labels OK" 500 ' First comment 501 CLS 502 CLS 'Comment LABEL1: LABEL2: 'comment LABEL3:CLS LABEL4:CLS 'comment LABEL5: CLS a$="REM follows - should not get to Library" rem secondcomment 'a$="\myfile\" a$="No comment lines above this No Blank line below" a$="Line with multiple spaces below is kept" a$="command with following 'comment should be in library" PRINT "HELLO number 2 in library" 'My comment PRINT 'My comment a$="multple commands on one line follow" a$="test":a$="test2":a$="test3" a$="multple commands on one line follow plus trailng 'comment" a$="test":a$="test2":a$="test3" 'My comment CLS CLS'comment CLS 'comment CLS RGB(RED) 'comment INC c INC c 'comment A LIBRARY SAVE and LIBRARY LIST ALL on Picomite and F4 yields the following. comments are stripped and blank lines omitted. Other commands copied to library. > library list all Print "hello I am first line" a$="4 comment lines follow -should not get to library" a$="check line numbers and labels OK" 500 501 CLS 502 CLS LABEL1: LABEL2: LABEL3: CLS LABEL4: CLS LABEL5: CLS a$="REM follows - should not get to Library" a$="No comment lines above this No Blank line below" a$="Line with multiple spaces below is kept" a$="command with following 'comment should be in library" Print "HELLO number 2 in library" a$="multple commands on one line follow" a$="test":a$="test2":a$="test3" a$="multple commands on one line follow plus trailng 'comment" a$="test":a$="test2":a$="test3" CLS CLS CLS CLS RGB(RED) Inc c Inc c The MMX yields this. The following issues exist with the code saved in the library. * The first and second lines are not saved into the library * 502 CLS 'comment - does not make it to the library * LABEL5: CLS - only the LABEL5: makes it to the library * - blank lines make it to the library >library list all a$="check line numbers and labels OK" 500 501 CLS LABEL1: LABEL2: LABEL3: CLS LABEL4: CLS LABEL5: a$="No comment lines above this No Blank line below" a$="Line with multiple spaces below is kept" a$="command with following 'comment should be in library" Print "HELLO number 2 in library" a$="multple commands on one line follow" a$="test":a$="test2":a$="test3" a$="multple commands on one line follow plus trailing 'comment" a$="test":a$="test2":a$="test3" CLS CLS CLS CLS RGB(RED) Inc c Inc c The fix outline above was included in Picomite and F4 to resolve this. Also LIBRARY LIST ALL not yet in the MMX. Regards Gerry P.S. Any chance of the F5 key at the command prompt sending the VT100 home and clear screen sequence as it does in the Picomites and F4. I find its very useful when playing at the command prompt to get a clean screen again. Edited 2023-08-30 16:08 by disco4now Latest F4 Latest H7 |
||||
TassyJim Guru Joined: 07/08/2011 Location: AustraliaPosts: 6098 |
I finally dusted of my MMX and updated the firmware. In OPTION LIST Can we have the firmware version please? Jim VK7JH MMedit MMBasic Help |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
Gerry I've fixed the issues as you report. Have you had a chance to think about the data statements in library issue? Just tested the PicoMite and it works the same as MMX i.e. it doesn't work A read statement in the library fails to read from a data statement in the library. I assume the same is the case on the ArmmiteF407? Jim: will do |
||||
disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 896 |
Yes F4 is the same. Currently READ in the library will only find DATA in the library when there is a RESTORE first that set the pointer to the data, in which case is will find it in either the main or library. RESTORE by itself will set the pointer to the Library if executed in the library. The original restriction of a READ in the library only searching the main is still there if no RESTORE is done. I think it could be made to work where a READ first looks in its own area, would need a flag to say that its should honour the RESTORE if one has been executed. Manual currently says If you want to read from DATA statements in the library you must use the RESTORE command before the first READ command. This will reset the pointer to the library space. Is this enough? Latest F4 Latest H7 |
||||
TassyJim Guru Joined: 07/08/2011 Location: AustraliaPosts: 6098 |
mm.info$( function is repeated many times > list functions * + - / < << <= <> = =< => > >= >> \ ^ Abs( ACos( And As Asc( ASin( Atan2( Atn( Baudrate( Bin$( Bin2str$( Bound( Call( Choice( Chr$( Cint( Cos( CtrlVal( Cursor( Cwd$ Date$ DateTime$( Deg( Dir$( Else Eof( Epoch( Eval( Exp( Field$( Fix( For GetScanLine( GoSub GoTo GPS( Hex$( Inkey$ Input$( Instr( Int( INV JSON$( Keydown LCase$( LCompare( Left$( Len( LGetStr$( LInStr( LLen( Loc( Lof( Log( Math( Max( Mid$( Min( MM.Device$ MM.HRes MM.I2C MM.I2C2 MM.Info$( MM.Info$( MM.Info$( MM.Info$( MM.Info$( MM.Info$( MM.Info$( MM.Info$( MM.INFO( MM.Ver MM.VRes MM.Watchdog Mod MsgBox( Not Oct$( Or OWSEARCH( Peek( Pi Pin( Pixel( Port( Pos Pulsin( Rad( RGB( Right$( Rnd Rnd( Sgn( Sin( Space$( SPI( SPI2( SPI3( sprite( Sqr( Step Str$( Str2bin( String$( Tab( Tan( TEMPR( Then Time$ Timer To Touch( UCase$( Until Val( While Xor Total of 133 functions and operators > Jim VK7JH MMedit MMBasic Help |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
V5.07.000b1 for 100/144 pin chips Micromite.X.production.zip for 64-pin chips Micromite.X.production.zip Fixes LIST FUNCTION LIBRARY SAVE ADDITIONS/CHANGES MATH FFT ( as per PicoMite manual) LIBRARY LIST ALL OPTION LIST new shows version MM.INFO(NBRPINS) TIMER function now returns a float but still only accurate to 1mSec Edited 2023-08-30 23:29 by matherp |
||||
disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 896 |
Hi Peter, Testing Continued ? MATH (CRC8 a$,len(a$),&h31,,,1,1) ? MATH (CRC16 a$,len(a$) ? MATH (CRC32 a$,len(a$),,&hffffffff,&hffffffff,1,1) All return with error Error : Internal fault (sorry) Function LGETBYTE(array%(),n) seems not to be implemented. Regards Gerry Latest F4 Latest H7 |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
What is a$? |
||||
disco4now Guru Joined: 18/12/2014 Location: AustraliaPosts: 896 |
a$="123456789" Latest F4 Latest H7 |
||||
matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 9110 |
Thanks Gerry. Trivial one - forgot to enable T_INT as a return from the MATH function. Will post a new beta tomorrow Just finishing off an audio upgrade |
||||
Page 1 of 4 |
Print this page |