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 KingdomPosts: 671 |
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. http://rittle.org -------------- |
||||
Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3165 |
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 Aaaggghhh Geoff Graham - http://geoffg.net |
||||
Grogster Admin Group Joined: 31/12/2012 Location: New ZealandPosts: 9066 |
Speculative execution? Smoke makes things work. When the smoke gets out, it stops! |
||||
JohnS Guru Joined: 18/11/2011 Location: United KingdomPosts: 3663 |
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 KingdomPosts: 671 |
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. http://rittle.org -------------- |
||||
circuit Senior Member Joined: 10/01/2016 Location: United KingdomPosts: 231 |
I think that you mean a code simulator such as one finds in PICAXE editor 6? |
||||
isochronic Guru Joined: 21/01/2012 Location: AustraliaPosts: 689 |
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 |
||||
panky Guru Joined: 02/10/2012 Location: AustraliaPosts: 1097 |
@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. ... 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 KingdomPosts: 3663 |
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: AustraliaPosts: 5913 |
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: FrancePosts: 134 |
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 KingdomPosts: 671 |
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: AustraliaPosts: 3165 |
Great idea, I will put it in the next version. Geoff Graham - http://geoffg.net |
||||
piclover Senior Member Joined: 14/06/2015 Location: FrancePosts: 134 |
Cool, thanks ! |
||||
piclover Senior Member Joined: 14/06/2015 Location: FrancePosts: 134 |
@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: FrancePosts: 134 |
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; } |
||||
Geoffg Guru Joined: 06/06/2011 Location: AustraliaPosts: 3165 |
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. 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 ZealandPosts: 9066 |
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: FrancePosts: 134 |
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] 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: FrancePosts: 134 |
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... |
||||
Page 1 of 7 |
Print this page |