Page 1 of 1

SuperPro C

Posted: 28 Oct 2011, 14:55
by afanofosc
As I mentioned in the Mindstorms Hardware forum, I have added another pair of programming languages into the NBC compiler. NBC can now compile files with a .spc file extension as well as files with a .spasm file extension. SPC files are SuperPro C files. The SuperPro C programming language is like C in many ways. Like C it supports pointers and true reference types. SPASM files are SuperPro assembler files for those of you who prefer to program at a lower level than C.

As of 2011-10-28 I do not have the SPC compiler working properly for array types due to recent architectural changes I made to the way arrays are parsed and compiled. But that limitation should be fixed today or tomorrow, though celebrating my wife's birthday may introduce a slight delay.

In any case, you can check out the compiler in the 2011-10-24 test release and contact HiTechnic about getting one of these cool new devices if you'd like to do some hardware prototyping with a device that interfaces extremely well with the NXT. If you have any questions or run into any problems with SuperPro C.

https://sourceforge.net/apps/wordpress/ ... pro-board/

John Hansen

Re: SuperPro C

Posted: 28 Oct 2011, 17:18
by mightor
If all goes well, I should have one of these puppies next week. I'm looking forward to using your compiler! I love the .spasm extension. Who said programmers didn't have a sense of humour?

- Xander

Re: SuperPro C

Posted: 28 Oct 2011, 19:36
by ronmcrae
If there is a need to update the firmware on the SuperPro board, will that be done via BricxCC also?

Will the board firmware be opensource?

So many questions :)

Re: SuperPro C

Posted: 29 Oct 2011, 05:23
by afanofosc
Ron,

I am not sure but I don't think that the firmware on the SuperPro sensor is field replaceable and as far as I know it is not open source. I'm sure Gus and John at HiTechnic can fill in all the details. :-)

Gus has been creating a number of very cool demo programs for the SuperPro, one of which involves SPC code running on the SuperPro playing a song using the analog outputs and an NXC program running on the NXT setting a shared memory address via I2C to different values which causes the SPC program to change the tune or stop it altogether. With the PWM output you can control servo motors. The motor control can be entirely stand alone SuperPro C code or it can be controlled by sending I2C messages to the SuperPro from an NXC program running on an attached NXT.

You can have up to 7 separate programs downloaded in the SuperPro's memory. You pick the program slot via the BricxCC IDE just like you would with the RCX brick. Each program can have up to 8 concurrent tasks.

John Hansen

Re: SuperPro C

Posted: 31 Oct 2011, 20:53
by ronmcrae
afanofosc wrote: Gus has been creating a number of very cool demo programs for the SuperPro, one of which involves SPC code running on the SuperPro playing a song using the analog outputs and an NXC program running on the NXT setting a shared memory address via I2C to different values which causes the SPC program to change the tune or stop it altogether. With the PWM output you can control servo motors. The motor control can be entirely stand alone SuperPro C code or it can be controlled by sending I2C messages to the SuperPro from an NXC program running on an attached NXT.

You can have up to 7 separate programs downloaded in the SuperPro's memory. You pick the program slot via the BricxCC IDE just like you would with the RCX brick. Each program can have up to 8 concurrent tasks.

John Hansen
Thanks John, all that looks like a lot of fun to get involved with. Sending my order today, but still wondering what to build with all these new possibilities......

Re: SuperPro C

Posted: 23 Nov 2013, 19:31
by dmfort
I know this is a moldy thread, but I wondered if the example program for the HiTechnic SuperPro board that shows how to interface to NXT over I2C by Gus mentioned above is available someplace. That is the sort of thing I am contemplating and an example would be very helpful.

thanks!