On 11/17/16 4:45 AM, Bob Camp wrote:
Hi


On Nov 16, 2016, at 11:52 PM, jimlux <[email protected]> wrote:

On 11/16/16 7:17 PM, Hal Murray wrote:

[email protected] said:
Arduino probably uses compiled code, external libraries, and interrupts so
that also is a no-no for precise time.

There are two parts to the Arduino ecosystem.  One is low cost hardware.  The
other is a software package that is easy for non-wizards to use.

I'd be very surprised if somebody hasn't figured out how to call subroutines
coded in assembly language.

Lots of this around

It’s around, but unless you *only* use assembly, there is no way to be sure of 
what is happening
on a cycle by cycle basis. Once you put that restriction on things, the whole 
“cute IDE” part of it
becomes more of a problem than part of the solution. Since the dividers are 
always in divide mode
(there are no spare cycles) you don’t have some part of the process that does 
not matter ….

I think I would advocate using the hardware devices, and make the software part that uses the hardware "non-timing-critical".




That is only part of the problem. The other part is working out just how the 
i/o pins get done.
One thing about even the M series Arm’s … you still get the bus arbitration and 
cycle
interleaving stuff. It makes them faster by a noticeable amount. The ones with 
bus
cache (M4’s etc) get even more “interesting” when you try to work out exactly 
which cycle
the pin toggles on.  They have to do something there (even on simple parts)  
since flash runs
at one speed, I/O at another speed, CPU at yet another clock speed, and RAM 
tied to either
CPU or (yikes!!) I/O. The same Teensy board line also has < $30 boards in it 
with all the
cache and bus stuff (180 MHz CPU and 26 MHz flash …).

True, but with some time with the processor manual(s), you can figure out which clocks are running which parts. I will say that those little parts have an enormous amount of flexibility - there are clock generators and muxes here, there, and everywhere. You really need to dig into the docs to figure out exactly how the clocks have been configured.


I suppose this sort of just shifts the time required from "write in assembler and count cycles" to "read the 1000 page processor manual and look at someone else's library code to figure out what's really going on", as well as a "hook it up and write some test programs"

Maybe, like everything, it's a de gustibus non disputandum situation
_______________________________________________
time-nuts mailing list -- [email protected]
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Reply via email to