packages feed

arduino-copilot-0.0.1: demo/demo.hs

{-# LANGUAGE RebindableSyntax #-}

import Arduino

flashing :: Stream Bool
flashing = clk (period (2 :: Int16)) (phase 1)

longer_and_longer :: Stream Int16
longer_and_longer = counter true $ counter true false `mod` 64 == 0

counter :: Stream Bool -> Stream Bool -> Stream Int16
counter inc reset = cnt
   where
	cnt = if reset
		then 0
		else if inc
			then z + 1
			else z
	z = [0] ++ cnt

main :: IO ()
main = arduino $ do
	buttonpressed <- boolInput (Pin 14)
	led =: buttonpressed || flashing
	delay =: longer_and_longer