by i-Bot » Thu Nov 01, 2007 11:29 pm
by i-Bot
Thu Nov 01, 2007 11:29 pm
For more complex programs C is still my language of choice, giving a good balance of high level language and low level hardware control. An Atmega is obviously stretched to support 24 channels of bidirectional servo channels at the same time as supporting the other I/O options and point to point. Even programming in C with a motion library based on that of the RoboBasic has performance limits and needs a good understanding of operation of the C3024.
Much of my progamming has been as patches to the C3024 code, and so in assembler. The advantage here is that one can still use robobasic to access the additional patches in code. This enables new instructions to be written and accessed from Robobasic, Robobasic goes through byte code instructions in EEPROM about one per millisec. By coding larger assembler routines behind one or two new instructions, a speed increase of about 100 times is possible for commonly used chunks of code.
For more complex programs C is still my language of choice, giving a good balance of high level language and low level hardware control. An Atmega is obviously stretched to support 24 channels of bidirectional servo channels at the same time as supporting the other I/O options and point to point. Even programming in C with a motion library based on that of the RoboBasic has performance limits and needs a good understanding of operation of the C3024.
Much of my progamming has been as patches to the C3024 code, and so in assembler. The advantage here is that one can still use robobasic to access the additional patches in code. This enables new instructions to be written and accessed from Robobasic, Robobasic goes through byte code instructions in EEPROM about one per millisec. By coding larger assembler routines behind one or two new instructions, a speed increase of about 100 times is possible for commonly used chunks of code.