![]() |
How much code can an IFI controller handle?
I imagine this has been answered somewhere else before: But, roughly speaking, how much code can the IFI robot controller handle before missing packets?
I have heard things like 10,000 lines of basic/second which would imply ~250 lines of code. Is there a simple way to determine when you start missing packets? Compare packet #? Larry #492 Titan Robotics |
Dr J pointed out last year that you could, in fact, store 8 programs in the BS2sx, and have one program call the next into action, sharing between programs variables stored in a special way. Just in case you should worry about running out of space.
The whole topic is probably archived here, or you could check out parallaxinc.com for details. |
The issue isn't code space, but timing: how much code can I execute between packets. I want to do some real time programming (velocity control, servo stuff) which adds up.
|
You can get the delta_t from the master processor just like you would a joystick axis. Delta_t tells you how many packets you missed (your code was still working with a packet when a new packet came in).
|
Thanks. Looking at Delta_t I see that I am currently missing 1/8 packets. If I leave a subroutine out that implements a slow PWM (to get around the Victor deadband) I miss 1/16 packets. So I must be on the edge...
Now, to learn how to optimise code - pbasic style. Any suggestions on what is good, bad and ugly with regarding pbasic coding & execution speed would be appreciated. Cheers! |
I'm not sure how you are viewing the value of delta_t, but you should realize that debug statements are really slow. Put 1 or 2 in and delta_t will go up, so your code may be fine.
|
A trick to see Delta_t easily...
The following code has the lights up just on LED at a time on the OI. For me, it is easier to see.
Joe J. Quote:
|
THanks for the code snippet!
I had already done, logically, what you stated (look at delta T and light an LED) since, as you point out, even a trivial debug statement can easily chew up 1 cycle (9600 baud, and probably polling! - the basic stamp sure sucks) But what I DIDN'T know, is that you can use a variable to specify which LED to illuminate. That will help make my code somewhat tighter. Thanks! |
| All times are GMT -5. The time now is 13:54. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi