what are the limitations of MPLABS IDE?

Im interested in doing a computer science project with vex, since I’m very familiar with vex (competed in FVC for two years) and my school already has the resources. However, we currently use easyC, which is extremely limited and wont allow for advanced algorithms (arrays, arraylists, matrixes, math functions, etc.)

As of now i only know Java, but C cant be too hard to learn to program specific algorithms/tasks for vex…I’m wondering though, before I buy the MPLABS software, if it has the ability to do object-oriented programs (creating multiple instances and classess) as well as the ability to make arrays and do math functions such as sin, cos, etc. Is it a true compiler with the latest C version that has all the class functions?

Any input will help, thank you!

MPLAB supports PIC18 C and C30 C compilers, which are ANSI C compatible. These C compilers do support trigonometric and floating point functions (IEEE Floats), but Microchip unfortunately does not support object oriented C++. The MPLAB IDE is an excellent tool that also allows you to run your application using a simulator before you flash it to the PIC MCU.

In addition it provides in-circuit-debugging using the ICD2, which lets you set break points, single step, and watch variables.

arg, well thats no good, i need object oriented programming to do what i need…

so basically theres no way at all to program with C++ or java? theres no third party programs that work?

The problem is that PIC18F and dsPIC30 MCUs don’t have enough SRAM and Flash to handle Object Oriented languages such as C++ and JAVA. The Parallax JSTAMP or the Javelin MCUs or 32-Bit ARM boards such as the Stellaris ARM do have the resources and memory and do support the JAVA and C++ compilers.

Another option which I am currently exploring is to use a Laptop as the host that runs Microsoft Visual C++ Vex applications and communicate with the Vex robot via a wireless UART (XBEE) or a WiFi board.

Here are a couple of C++ compilers for the PIC:

http://www.sourceboost.com/

I believe both have trial versions. It should be possible to get the Vex working with these compilers. I posted a link to my open source Vex libraries a while ago.

If you really want a lot of work, it might be possible to get a limited version of Java running by porting NanoVM to the PIC:
[http://www.harbaum.org/till/nanovm/index.shtml

Though it’s probably not worth it…

-Sutekh](http://www.harbaum.org/till/nanovm/index.shtml)

tswift1:

is the Stellaris ARM a seperate motherboard/processor (like a vex microcontroller just from another company with more capabilities)? and if so is it compatible with vex motors?

Sutekh:

i dont really know much about the mechanics of a compiler/IDE so im a little lost as to how i would use the links you sent (the first ones) to program the vex microcontroller

btw thanks for both of your input

I used the Stellaris in the Circuit Cellar Stellaris contest. They provided me a single board, which is very low cost for a 50 MHz 32-Bit ARM core. The board used the USB interface for programming/debugging its flash. In addition, it provided a brilliant AMBER OLED display with three push buttons. Some high end ARM based boards from TI and Philips even run an embedded Linux operating system.
Another board you can program in C++ is the 16-Bit Renessas M16C board. Renessas will send you a complete development kit if you qualify for their sampling criteria. Any of these boards will allow you to control your Vex projects because they also have PWM, QEI and UARTS.

http://www.luminarymicro.com/

http://www.circuitcellar.com/designstellaris2006/