Common Atom functions.
- 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)
Timers
startTimer :: Timer -> E Word64 -> Atom ()Source
Starts a Timer. A timer can be restarted at any time.
One Shots
Debouncing
debounce :: Name -> E Word64 -> E Word64 -> Bool -> E Bool -> Atom (E Bool)Source
Debounces a boolean given an on and off time (ticks) and an initial state.
Lookup Tables
lookupTable :: FloatingE a => [(E a, E a)] -> E a -> E aSource
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 :: FloatingE a => (E a, E a) -> (E a, E a) -> E a -> E aSource
Linear extrapolation and interpolation on a line with 2 points. The two x points must be different to prevent a divide-by-zero.