[Haskell-cafe] Timing in atom -- how consistent?
Tom Hawkins
tomahawkins at gmail.com
Fri Jan 1 10:32:23 EST 2010
On Fri, Jan 1, 2010 at 4:43 AM, Jason Dusek <jason.dusek at gmail.com> wrote:
> I'm working with Atom to program an ATtiny25. I am curious
> about how consistent the timings actually are.
The function returned by Atom is intended to be called periodically,
preferably using some hardware timer, like this:
while (1) {
waitForNextSample();
atomGeneratedFunction();
}
This provides consistent cycle-to-cycle timing. However, the events
that occur within the Atom function will most likely vary in time from
call to call, due to rules being scheduled at different periods.
>
> Also, I am a little puzzled by the `__coverage` variable. What
> does it do?
__coverage keeps track of which rules have fired during the execution
of a program to provide some measure of code coverage. The compiler
returns RuleCoverage[1], which is a list of rule names with associated
indices bit positions to the __coverage array. Inside an Atom
program, you can access this array with nextCoverage[2], which
provides the current index and value of __coverage[index]. Repeated
calls to nextCoverage would loop through the __coverage array. This
feature was added before Atom had support for arrays, so it should
probably be rewritten as some point in the future.
[1] type RuleCoverage = [(Name, Int, Int)]
[2] nextCoverage :: Atom (E Word32, E Word32)
>
> As for my project/motivation -- I'm just trying to blink a
> little LED on much less robust/rich kit -- the Trippy RGB
> Waves kit from Lady Ada. I am (gratuitously) exploring ways to
> program it with Haskell.
>
> --
> Jason Dusek
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
More information about the Haskell-Cafe
mailing list