added gracefull shutdown
[mTask.git] / Tasks / Examples.icl
index 9404274..2e2a973 100644 (file)
@@ -6,6 +6,28 @@ import mTask
 import Devices.mTaskDevice
 import iTasks._Framework.Serialization
 
+faculty :: Int -> Main (ByteCode () Stmt)
+faculty i = sds \y=i In sds \x=1 In {main =
+       IF (y <=. lit 1) (
+               pub x :. retrn
+       ) (
+               x =. x *. y :.
+               y =. y -. lit 1
+       )}
+
+countTo5 :: Main (ByteCode () Stmt)
+countTo5 = sds \x=0 In {main =
+       x =. x +. lit 1 :.
+       pub x :.
+       IF ( x >. lit 5) (
+               retrn
+       ) (
+               noOp
+       )}
+
+count :: Main (ByteCode () Stmt)
+count = sds \x=0 In {main = x =. x +. lit 1 :. pub x :. noOp}
+
 countAndLed :: Main (ByteCode () Stmt)
 countAndLed = sds \x=1 In sds \pinnetje=1 In {main =
        IF (digitalRead D3) (
@@ -47,7 +69,7 @@ ledtOff :: UserLED -> Main (ByteCode () Stmt)
 ledtOff d = {main = ledOff (lit d) :. noOp}
 
 readDPin :: DigitalPin -> Main (ByteCode () Stmt)
-readDPin d = sds \pin=False In {main=pin =. digitalRead d :. noOp}
+readDPin d = sds \pin=False In {main=pin =. digitalRead d :. pub pin :. noOp}
 
 ledSelection :: Task UserLED
 ledSelection = enterInformation "Select LED" []
@@ -63,4 +85,7 @@ allmTasks = 'DM'.fromList
        ,("readDPin", pinSelection @ readDPin)
        ,("blink", ledSelection @ blink)
        ,("blinkShare", treturn blinkShare)
+       ,("count", treturn count)
+       ,("countTo5", treturn countTo5)
+       ,("faculty", enterInformation "Faculty" [] @ faculty)
        ]