Nice to meet you all...
Thank bertrand for inviting me to here, but I am always too busy to write something.
Actually, the new improvement all comes from bertrand.
What I do is just sitting & waiting for his new code.
Anyway, I would like to share some facts here...
Before:
- The shortest latency of previous version
CH1 is GEAR switch
CH2 is PPM output, the timeslot 5 represents GEAR position
- The longest latency
As you see, any changes must take place before PPM early enough, otherwise you will miss 1 train and
must wait for the next one.
The worst is that, UI & etc., are executed with doMix together.
The latency depends where you are (i.e. different menu / views has different latency),
and what you do (i.e. telemetry / bar drawing / EEPROM accessing / SD accessing / ...)
Most likely, the latency depends on the complexity of the screen drawing.
The STAT view displays the max latency between two doMix call. (include LCD update of course)
After:
sticks & switches are read, mixed, just be in time...
No matter where you are, what you do!
- do mixing just before PPM setup
CH2 rising edge is when doMix started
CH2 falling edge is when doxMix completed
CH3 is PPM output
Any UI operation shall not affect the latency now.
The STAT view displays the max latency and UI not included. (Since UI doesn't affect latency anymore)
In other words, the value is the positive pulse width of CH2 above.
If the mixing setting is very very complex, and totally different between Fight Phase, when you switch
ID0 makes the computing time is significantly changed,then the arrangement of mix & PPM is adjust quickly.
That keeps you always enjoy the smallest latency in your flight.
Again, all of these must credit to bertrand.
(Ok, if you have any question, bertrand will tell you the whole story.
)