View Full Version : Getting started
Hi All,
I'm new to FORTH and IsoMAX, and would like to learn more. I have experiance in assembly for the MCS51 and PICs, Basic and a little C. IsoMAX looks interesting and I hope there will be some exemples posted in the near future. It seem Forth is the basis of IsoMAX(?) Could some one point me to a book or web page that will help me get started. I've read the IsoMaAX docs on NMI, but the V0.2 WORDS list is still foggy to me. Do I need a basic understanding of the syntax and structure of the language(Forth) to use IsoMAX?
Thanks for any input you can offer,
Bill
RMDumse
06-21-02, 03:45 PM
We have a long history with Forth, and you could say IsoMax is based on Forth, but in the same sense as Open Boot and PostScript are based on Forth. Forth has been a push off point for a number of projects, although they often try to hide the heritage.
The main difference is we acknowlege it, and are a bit more open with "what's in the pedigree".
IsoMax(TM) uses Forth for the procedureal portions of its language, in the condition and action codes. Eventually, we'll have lots of application specific words, so the Forth will be less obvious and most of the Forth words that are there for historic or compilation purposes will be winnowed away.
We do have some support manuals for Forth. I'll leave it for nmitech to give you links to some manuals.
Really to understand what makes IsoMax(TM) wonderful for real time control, requires no understanding of Forth, but just the syntax of IsoMax(TM) itself. To get fancier with conditions and actions, yes, perhaps you will need to study a little Forth, but that's really all, a little. Less than 1/8th of the words in the Forth set have real run time actions of use in IsoMax(TM) so don't worry about having to get very deep into the Forth way of doing things. At least that's my considered opinion as of this moment.
So if that's true, why didn't we strip out more of the Forth right from the beginning? Too many arguments. No one among the few who knew of IsoMax(TM) being developed could agree how much of Forth should be left there. So in the end, we thought we'd put it out and see what the market place told us needed to be there, and how much people actually used. Better safe (give you all you could need) than sorry (cut out too much and leave you stranded unable to accomplish something).
We are looking forward to getting feedback. We hope as you and others get to know the language, and the underlying Forth, you'll let us know your thoughts.
nmitech
06-21-02, 04:08 PM
wevb,
For your reference, Here is the link for the online Max-FORTH.
http://www.ee.ualberta.ca/~rchapman/MFwebsite/V50/Alphabetical/Brief/index.html
I'm really glad to see this forum here, hope many IsoPod users join in. I've seen a few bits of IsoMax code, but it's difficult to picture what is going on at times. Specific examples of using the quadrature encoders would be good, reading the register and perhaps seeing the result in some way. The ultimate use would be in making regular gearmotors into servos, combining both the quad decode and PWM functions of the IsoPod. Another way would be to go the standard RC servo route and have the AD show position info from a potentiometer on the geartrain and control the PWM output. The IsoPod does communicate well with the serial link, how would you display readings from the IsoPod to the screen to see if you interfaced the quad encoder correctly? I've thought of just hooking it to the appropriate inputs on the IsoPod, but am unsure how to read the associated counter register or how to get it to display onscreen. Mike K has shown some code that I believe reads the quadrature outputs of an optical mouse, but I'm still digesting that. I'm thinking I need a bit more familiarity with Forth so as to construct similar word definitions for use on the IsoPod. Hope this isn't too long or jumps around too much.
RMDumse
07-11-02, 04:52 PM
Glad to have you Dave. I'd really like to see a servo motor made out of a DC motor and an encoder as well. The NMIS-7056 board we sell for the NMIS-0021 type boards uses a LM629 controller and does a very nice job profiling movement that way, but the capabilities of the IsoPod(TM) should well exceed even what is possible for the LM629.
There are people all over working on different projects with the IsoPod(TM). I hope they will share with us as they learn.
Tobi Mengle
07-30-02, 08:58 AM
I just received my QuickKit on 7/26/02, and I am very optimistic about the device. I am looking for a very small footprint device with high resolution ADC capability and some I/O. In terms of input on how much FORTH should have been left in the IsoMAx language, I am very glad you left most of FORTH in there, because it will allow me to get going quickly while I experiment with IsoMax along the way. This opinion is biased because I have worked with FORTH since 1984, and been a NMI devotee since the early 90's.
I have the SPI interface working with a digital potentiometer, and it works well. I will be testing the top end on SPI baud rate and the ADC later this week.
I really need to be able to store autostart programs to the FLASH, but I think this is beyond my skills at this time. Hopefully the NMI gurus will have this functional soon. Thanks for another promising device.
Is the base for the IsoPod a DSP56F807? Are the base addresses the same as the motorola manual? What is the speed of the IsoMax timer? What are the interrupts that the system uses?
I'm working on a system similar to what Dave describes, using 500 cpr encoders on gearmotors, PWM signals driving H-Bridges.
Are there electrical specs for the IsoPod? Voltage thresholds, etc?
the new programing tool looks exciting -- it reminds me of event driven stuff in windows.
RMDumse
07-30-02, 03:22 PM
Originally posted by cbull
Is the base for the IsoPod a DSP56F807?
No it is a 805 in the current IsoPod. Later developments might be based on other processors in the family.
Are the base addresses the same as the motorola manual?
For the 805, yes.
What is the speed of the IsoMax timer?
Normally, full speed, the IP bus is 40MHz.
What are the interrupts that the system uses?
So far, TD3. We will shortly be expanding the language and may drive quite a bit more on interrupts.
I'm working on a system similar to what Dave describes, using 500 cpr encoders on gearmotors, PWM signals driving H-Bridges.
500 line encoders should be no problem with the 40MHz count rate.
Are there electrical specs for the IsoPod? Voltage thresholds, etc?
Yes, they are now in the new manual. They are, of course, copies of those from the Motorola spec in their datasheet on the series.
the new programing tool looks exciting -- it reminds me of event driven stuff in windows.
Yes, it is probably what Windows even driven programming should have been. The main difference is event driven programming is thread based, so there is no protection against backwards branches, and then, entering threads requires compute your way to the state, where IsoStructure gives polyfurcation (a fancy word meaning precomputed go to gets you there right away.) Short story, multitasking that is blazingly fast, and well behaved. Yeah, we're excited too.
Where can I find the definitions for the IsoMax words? I/O, PHERE, etc.
Here 's the link for the Isomax Words Listing
http://www.newmicros.com/store/product_manual/IsoMax02.pdf
We are still in the process of working on the definition for all the words so we will add in the manual very soon
sorry, maybe i did not pose that correctly. with max-forth i got this manual that had a page for each word with all the details about using it. some of this i can glean from the pdf's. i'm just looking for more details.
RMDumse
07-31-02, 01:59 PM
Yes, a better glossary of the new words is in order.
On the I/O words, we are being delibrately vague, because they are OO and what they did and how they worked in V0.2 will be different from how they will work in V0.3 (much slicker). But their functions will still be the same. For instance.
PA0 OFF and PA0 ON will still be the same source code in both cases. PA0 leaves things on the stack the ON method uses to identify PA0 and what kind of bit PA0 is, and what direction registers need to be turned on, etc. etc.
The other words you mentions, the Pxxxxx words, are simply memory words with identical function to their familiar Forth counter parts but deal with the Program Memory side of the Harvard architecture. In the specific example, PHERE does the same thing as HERE but for the Program memory side of the map. HTH's. More documentation will come with release V0.3 which should have the completed OO model finalized.
Can you kill a machine running with schedule-runs short of resetting the system?
the state machine idea seems like inertia, or Newton's first (a body remains at rest....)
Will you post a notice when updated doc is available?
and another thing, i have one word i defined that resets isomax rather than doing what it supposed to do. any troubleshooting ideas?
Looks like i'm running out of memory.
RMDumse
08-13-02, 11:23 PM
Originally posted by cbull
Can you kill a machine running with schedule-runs short of resetting the system?
A couple ways. First, you can stop the system timer. This word is STOP-TIMER
Secondly, you can replace a running word with another. So let's say you have a machine chain running you don't want to have running. You could replace it with another machine chain, or even thread that did nothing. Like:
EVERY 50000 CYCLES SCHEDULE-RUNS TASK
Will you post a notice when updated doc is available?
Maybe LC can tell you his plans for new documents. We've done several, and I think there is one waiting to be uploaded. It will probably go up Friday. (LC remind me when you see me Friday, and we'll do this.)
In other good news, we're very close to V0.3. So far we have an OO word set added for most of the I/O, and better memory access, ability to move the code into Flash, and are polishing up AUTOSTART and INSTALL. I guess we'll probably be ready to release by the end of the following week.
nmitech
08-18-02, 09:53 AM
To All,
Please book mark the link below for the updated IsoPod document. Thanks!
http://www.newmicros.com/discussion/showthread.php?s=&threadid=223
LC
BJ Freeman
08-23-02, 04:20 PM
I have the quick Kit on the way, I hope.Iwill use Hyperterm to to the ISOPOD, this allows me to save any entries and interaction with the ISOPOD.Then I can put together ISOMAX program segments to upload and test.Question does the ISOMAX get confused with a stream of commands, like from Hyperterm.
nmitech
08-24-02, 10:29 AM
BJ Freeman,
Some of your recent Posts was lost during the site schedule for maintenance. Please re-post your questions again.
We are sorry for the inconvinience that caused you.
Reply to your previous post, You can use the hyperterminal with one thing in the ASCII setup, you need to set the LINE DELAY for 50ms. You can play with this number if you want a shorter time delay. I tested with 20ms, and 10ms are also worked but i just set 50ms just for the safe side. Beside, you can also dowload a DOS based terminal program, MAXTERM here,
http://www.newmicros.com/download/maxterm.zip
Additional info for the hyperterminal, recently the Quick-Kits are shipped with the modified RS-232 cable that will work with the hyperterminal without have to remove the ATN signal as previously stated in the manual.
nmitech
----------
vBulletin v3.0.7, Copyright ©2000-2012, Jelsoft Enterprises Ltd.