Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 14:48 05 May 2024 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 : MM/MM+ 5.2/6.0?

     Page 1 of 7    
Author Message
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 10:13pm 01 Apr 2016
Copy link to clipboard 
Print this post

What to expect and when?
Just curious...

After a serious number of hours spent with MM+, I really hope to see a command for speculative execution, and improved built-in editor. My wishes.

Edited by kiiid 2016-04-03
http://rittle.org

--------------
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 01:58am 02 Apr 2016
Copy link to clipboard 
Print this post

  kiiid said   What to expect and when?
Just curious...

I normally try to delay a release until I have something really useful to add or a serious bug to fix. This is to avoid giving users "update fatigue". On my list for the MM+ is better error checking for GUI controls and a few extra controls but so far nothing important has surfaced.

At this time I have a lot of work on my hands with magazine articles so it will be at least a couple of months before the next release... unless some terrible bug surfaces

  kiiid said  I really hope to see a command for speculative execution, and improved built-in editor.

Aaaggghhh
Geoff Graham - http://geoffg.net
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9066
Posted: 05:25am 02 Apr 2016
Copy link to clipboard 
Print this post

Speculative execution?
Smoke makes things work. When the smoke gets out, it stops!
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3663
Posted: 05:53am 02 Apr 2016
Copy link to clipboard 
Print this post

A late April Fool (or something). It would mean running some code ahead of time in case needed but is likely to result in huge software complexity and serious reduction in speed unless on a multi-core CPU.

John
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 07:04am 02 Apr 2016
Copy link to clipboard 
Print this post

No, it is not that (although that would be nice )

Speculative execution in this context refers to a much simpler thing discussed a few months ago. It is the possibility of a command which will act just like RUN, but without actually executing anything, or maybe better to say - executing without any I/O, and ignoring loops and conditional branches.

A compiled language has this side benefit that you can find and fix almost all of the errors caused by typos, unknown commands/functions/variables, wrong variable type, wrong function parameters, etc. In interpreted code there is no way of finding any bugs until you actually hit them in execution. I have a program running on MM+, and currently it is nearly 3500 lines code, so believe me, it is not easy at all :)
A command which would be able to execute the program without actually executing it, would be extremely useful to anyone who is writing more than 50-60 lines of code, because it saves a lot of time and iterations of trial and error as it is the only way now.
Edited by kiiid 2016-04-03
http://rittle.org

--------------
 
circuit
Senior Member

Joined: 10/01/2016
Location: United Kingdom
Posts: 231
Posted: 09:44am 02 Apr 2016
Copy link to clipboard 
Print this post

I think that you mean a code simulator such as one finds in PICAXE editor 6?
 
isochronic
Guru

Joined: 21/01/2012
Location: Australia
Posts: 689
Posted: 12:08pm 02 Apr 2016
Copy link to clipboard 
Print this post

I guess something like in java -


try {
...
}

catch {
....
}


[ You could run BSD and that would probably have a java RTE ?!!! ]


BTW this pic32MZ-DA is due in a few months I guess - I think the blurb is from the microchip conference last year (I didn't go)

http://www.microchip.com.cn/community/html/university/plan_3_3/005.pdf
Edited by chronic 2016-04-03
 
panky

Guru

Joined: 02/10/2012
Location: Australia
Posts: 1097
Posted: 12:24pm 03 Apr 2016
Copy link to clipboard 
Print this post

@TassyJim

Would it be possible to include a command in MMEdit to simulate the operation of OPTION EXPLICIT? This would scan and match DIM to variables thus hopefully picking up miss defined or miss-spelt variables? This should also catch miss-spelt MMBasic commands as they would show up as un-DIM'd variables?

That coupled with your FORMAT command to show IF-ELSE-ENDIF and loop linkages through indenting might help Kon (and others with large programs) catch pre run-time errors.

Just a thought☺☺

Doug.
Edited by panky 2016-04-04
... almost all of the Maximites, the MicromMites, the MM Extremes, the ArmMites, the PicoMite and loving it!
 
JohnS
Guru

Joined: 18/11/2011
Location: United Kingdom
Posts: 3663
Posted: 01:09pm 03 Apr 2016
Copy link to clipboard 
Print this post

  kiiid said  Speculative execution in this context refers to a much simpler thing discussed a few months ago. It is the possibility of a command which will act just like RUN, but without actually executing anything, or maybe better to say - executing without any I/O, and ignoring loops and conditional branches.


Let's not call it an existing term with a very different meaning.

It doesn't strike me as being possible to do much but maybe pre-execution checking? Or static checking?

John
 
TassyJim

Guru

Joined: 07/08/2011
Location: Australia
Posts: 5913
Posted: 01:40pm 03 Apr 2016
Copy link to clipboard 
Print this post

  panky said   @TassyJim

Would it be possible to include a command in MMEdit to simulate the operation of OPTION EXPLICIT? This would scan and match DIM to variables thus hopefully picking up miss defined or miss-spelt variables? This should also catch miss-spelt MMBasic commands as they would show up as un-DIM'd variables?

Doug.

The variable report is designed to help catch typos etc.
I intend to expand on it a bit but first I have to catch up with syntax for V5.1

The more I try to do a true syntax check, the more likely I am that I will make things worse.

Having configuration options, library code that has been pre-loaded and CFunctions that have their own syntax rules makes it difficult to do a proper syntax check in isolation.

The new PC is settling in well and I have just about loaded all the programs I use for producing MMEdit so I am running out of excuses. I will try and get an update out this week but it won't have any more syntax checking than what's there now.

Jim

VK7JH
MMedit   MMBasic Help
 
piclover
Senior Member

Joined: 14/06/2015
Location: France
Posts: 134
Posted: 02:21am 04 Apr 2016
Copy link to clipboard 
Print this post

One thing I'd really like to see for v5.2 is the replacement, in the LCD panel built-in font (#1) of the (seldom used, if ever) back quote character with the degree ('°') character.

The rationale is that Micromites are mostly used by electronics tinkerers for scientific applications (I'm currently finishing up a meteo station project and got bothered with the absence of the degree symbol in the default font) which use the degree to display temperatures, latitude/longitude, azimuth, right ascension and declination, and all sorts of angles in all sorts of potential applications.

Of course, you can always add a font with the degree, but that's quite a big wastage of precious program memory when all you need is to replace that damned useless back quote with the quintessential degree symbol...
 
kiiid

Guru

Joined: 11/05/2013
Location: United Kingdom
Posts: 671
Posted: 02:30am 04 Apr 2016
Copy link to clipboard 
Print this post

That would be good, yes. Basically this extends to the earlier topic about 8-bit character set support (another essential addition for the future)

http://rittle.org

--------------
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 02:55am 04 Apr 2016
Copy link to clipboard 
Print this post

  piclover said   One thing I'd really like to see for v5.2 is the replacement, in the LCD panel built-in font (#1) of the (seldom used, if ever) back quote character with the degree ('°') character.

Great idea, I will put it in the next version.
Geoff Graham - http://geoffg.net
 
piclover
Senior Member

Joined: 14/06/2015
Location: France
Posts: 134
Posted: 02:53am 05 Apr 2016
Copy link to clipboard 
Print this post

  Geoffg said  
  piclover said   One thing I'd really like to see for v5.2 is the replacement, in the LCD panel built-in font (#1) of the (seldom used, if ever) back quote character with the degree ('°') character.

Great idea, I will put it in the next version.

Cool, thanks !
 
piclover
Senior Member

Joined: 14/06/2015
Location: France
Posts: 134
Posted: 09:17am 09 Apr 2016
Copy link to clipboard 
Print this post

@Geoff

Another thing, which is cruelly missing to the Micromite, is the ability to use one of its pins as a Vref for ADC conversions (and no, this is not the same thing as measuring a ref voltage on a pin, then to scale the value of other ADC conversions you get milliseconds later from other pins: noise ruins the results too badly for this method to be precise enough)...

IIRC, this had been put on your "to do" list at some point: I'd really like it to be implemented in a coming version.
 
piclover
Senior Member

Joined: 14/06/2015
Location: France
Posts: 134
Posted: 11:53am 09 Apr 2016
Copy link to clipboard 
Print this post

And yet another suggestion: adding ACOS and ASIN (I needed those for my meteo station project, which also computes sun rises and sun sets)... Remembering that ACOS=PI/2-ASIN, so that you don't need to link both the asinf() and acosf() math library functions to the firmware (which would consume too much memory to fit: tested here).

EDIT:
And with: asin(x) = 2 * atn(x / (1 + sqrt(1 - x * x)))
we don't even need to link more math library functions than in v5.1... I implemented it and tested it successfully, this way (in Functions.c, with corresponding declarations and function table entries in Functions.h):

float arcsinus(float x) {
return 2 * atanf(x / (1 + sqrtf(1 - x * x)));
}

// Return the arcsine (in radians) of the argument 'number'.
// n = ASIN(number)
void fun_asin(void) {
float f = getnumber(ep);
if (f < -1 || f > 1) error("Number out of bounds");
fret = arcsinus(f);
targ = T_NBR;
}


// Return the arccosine (in radians) of the argument 'number'.
// n = ACOS(number)
void fun_acos(void) {
float f = getnumber(ep);
if (f < -1 || f > 1) error("Number out of bounds");
fret = 1.5707963268f - arcsinus(f);
targ = T_NBR;
}
Edited by piclover 2016-04-10
 
Geoffg

Guru

Joined: 06/06/2011
Location: Australia
Posts: 3165
Posted: 02:30am 10 Apr 2016
Copy link to clipboard 
Print this post

  piclover said  missing to the Micromite, is the ability to use one of its pins as a Vref for ADC conversions

Yes, this has been on the list for a while and I am not sure why it did not make the last version... I seem to remember that there was a significant problem implementing it. I will have another look at it.

  piclover said   And yet another suggestion: adding ACOS and ASIN

I am not sure about these. They are not often used and they can be implemented as a BASIC subroutine (not easy but doable). Also, there are an awful lot of maths functions that could be implemented (especially inverse functions), so I had to stop somewhere.

Geoff
Geoff Graham - http://geoffg.net
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9066
Posted: 02:51am 10 Apr 2016
Copy link to clipboard 
Print this post

Can you not use Cfunctions to create special mathematical operations?

...i guess you need to know how to write Cfunctions to be able to do that. Our forum guru(matherp) might be able to rustle up a quick Cfunction for what you need if you give him a PM...
Smoke makes things work. When the smoke gets out, it stops!
 
piclover
Senior Member

Joined: 14/06/2015
Location: France
Posts: 134
Posted: 03:39am 10 Apr 2016
Copy link to clipboard 
Print this post

  Geoffg said  
  piclover said  missing to the Micromite, is the ability to use one of its pins as a Vref for ADC conversions

Yes, this has been on the list for a while and I am not sure why it did not make the last version... I seem to remember that there was a significant problem implementing it. I will have another look at it.

The original request was by me, but back then, I made a mistake by assuming that the PIC32 had an internal voltage reference that could be used like on the PICAXE (e.g. for the PIC18F25K22 used for the PICAXE 28X2), but alas, the PIC32MX[1|4]70 can only use its reference for the comparator, not for ADC conversions.
However, both PIC (8/16 and 32 bits) types can use an external input pin as a Vref (and even another pin as a "ground" reference) for ADC conversions: this is this latter feature that would be really, really great to implement in the Micromite (that is currently extremely inferior to the PICAXE for ADC conversions).

[quote]
  piclover said   And yet another suggestion: adding ACOS and ASIN

I am not sure about these. They are not often used and they can be implemented as a BASIC subroutine (not easy but doable). Also, there are an awful lot of maths functions that could be implemented (especially inverse functions), so I had to stop somewhere.
Yes, I do admit that these are probably borderline to usefulness since some knowledge in maths and the use of SQR() and ATN() do allow to get ACOS() and ASIN() equivalents... However, my implementation (using sqrtf() and atanf(), which are FP math library functions already linked into the firmware for ATN() and SQR()) is a low cost one, in term of program memory.
 
piclover
Senior Member

Joined: 14/06/2015
Location: France
Posts: 134
Posted: 03:47am 10 Apr 2016
Copy link to clipboard 
Print this post

  Grogster said   Can you not use Cfunctions to create special mathematical


Nope, alas... Because SQR() is not vectorized in CFunctions.h, unlike ATN() (why ???) and you can't use the C FP math library in CFunctions, and thus not sqrtf(), that would be needed to implement ACOS() and ASIN(). Of course, you could re-implement the functions from scratch, using integer math with polynomial approximations or "développements limités" (sorry, I don't know the English term for those...), but what a headache when compared with such an easy solution as native ACOS()/ASIN() implementations...Edited by piclover 2016-04-11
 
     Page 1 of 7    
Print this page
© JAQ Software 2024