SimpleIDE and the C3 board
Rsadeika
Posts: 3,837
in Propeller 1
I started messing around with my C3 board, and in the Board Type selection, using SimpleIDE, there is a choice of C3 and C3F. What is the difference? Since the C3 board has Flash RAM(1MB) and SPI RAM(2x32K), is there some way to use all external RAM, using PropGCC, that is?
Ray
Ray
Comments
Since I am restarting my project using the iRobot Create, with the C3 being the control, I would like to use the ADC setup on the C3. The Create battery puts out ~14VDC, when charged up, and I know I have to use a voltage divider setup to knock down the voltage to 5V, for the ADC, does anybody have any info on a easier solution for the voltage divider setup? Would be nice if there was a pre made PC board with a two wire connector from the battery and two wires for the ADC, and then magic in between to produce the necessary 5V.
Ray
Since there is a lib in SimpleIDE to work with ADC, I think that this should be a straight forward hookup and usage. At least it was that way when I used it with the lib for the Activity board ADC.
But, it is a device from China, wondering how long before I have parts failure? Anybody see any potential problems that I could run into with this device?
Ray
I only mention this because I noticed that all the C3 boards are sold out, so if their are some new users wanting to use all COGs and external RAM, you can not, at least not with latest official SimpleIDE.
Ray
What you state in the above post is not entirely true.
Yes, you can just use XMM with one COG but you can still run other COGS in parallel just not with XMM.
So your main(XMM) program can without problem start other COGs running PASM or C written stuff.
Just the extended memory access is bound to one COG/process.
Correct me if I am wrong, but this is my current understanding.
Enjoy!
Mike
Messing around with the XMM mode(s), I noticed that the compiler does not give you any warnings, or at the very least, an error when you try to start another COG while in the XMM mode. So, if your command structure is cog_run(xxxx,128), and you have designated the functions, the program starts, but it does not run the function that has been COGed. This scenario turns out to be a major head scratching event, trying to find out why the COGed function is not cooperating.
Now, for the running of PASM while using SimpleIDE, I am not aware of inline PASM being available in the official SimpleIDE release. Or for that matter what memory model you would use to be able to achieve the segmented memory usage design(parallel suggestion).
Ray
This has been fixed for probably several years but the version of PropGCC that comes with SimpleIDE has never been updated to include the fixes.
What I would like to do is somehow use threads to do pseudo-COGs? Hopefully some of the experts here will join in and comment on how and if it can be done.
As a basic outline, what I have is a Create that will have an IR demodulator, for controlling the Create with a remote. A couple of Ping sensors, front and back. Plus an XBee module for communication, as a starter configuration. Oh, almost for about the onboard sht11 module.
Under normal circumstances, I would just assign each of the devices to its own COG and use global variables for intra COGs data movement. So, how would I simulate the same condition using threads? Any ideas? Anyone?
Ray
Ray