[email protected]
[Top] [All Lists]

Re: [Haskell-cafe] Timing in atom -- how consistent?

Subject: Re: [Haskell-cafe] Timing in atom -- how consistent?
From: Tom Hawkins
Date: Fri, 1 Jan 2010 16:32:23 +0100
On Fri, Jan 1, 2010 at 4:43 AM, Jason Dusek <[email protected]> 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
> [email protected]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

<Prev in Thread] Current Thread [Next in Thread>