| Copyright | (c) 2013 Tom Hawkins & Lee Pike |
|---|---|
| Safe Haskell | None |
| Language | Haskell98 |
Language.Atom.Common
Description
Common Atom functions
Synopsis
- data Timer
- timer :: Name -> Atom Timer
- startTimer :: Timer -> E Word64 -> Atom ()
- startTimerIf :: Timer -> E Bool -> E Word64 -> Atom ()
- timerDone :: Timer -> E Bool
- oneShotRise :: E Bool -> Atom (E Bool)
- oneShotFall :: E Bool -> Atom (E Bool)
- debounce :: Name -> E Word64 -> E Word64 -> Bool -> E Bool -> Atom (E Bool)
- lookupTable :: FloatingE a => [(E a, E a)] -> E a -> E a
- linear :: FloatingE a => (E a, E a) -> (E a, E a) -> E a -> E a
- hysteresis :: OrdE a => E a -> E a -> E a -> Atom (E Bool)
- data Channel a = Channel a (V Bool)
- channel :: a -> Atom (Channel a)
- writeChannel :: Channel a -> Atom ()
- readChannel :: Channel a -> Atom a
Timers
Starts a Timer. A timer can be restarted at any time.
One Shots
Debouncing
Debounces a boolean given an on and off time (ticks) and an initial state.
Lookup Tables
1-D lookup table. x values out of table range are clipped at end y
values. Input table must be monotonically increasing in x.
Linear extrapolation and interpolation on a line with 2 points.
The two x points must be different to prevent a divide-by-zero.
Hysteresis
Channels
A channel is a uni-directional communication link that ensures one read for every write.
writeChannel :: Channel a -> Atom () Source