from Data.Map import :: Map
import mTask
+pinShare :: Main (ByteCode () Stmt)
faculty :: Int -> Main (ByteCode () Stmt)
-countTo5 :: Main (ByteCode () Stmt)
countAndLed :: Main (ByteCode () Stmt)
blink :: UserLED -> Main (ByteCode () Stmt)
count :: Main (ByteCode () Stmt)
import Devices.mTaskDevice
import iTasks._Framework.Serialization
+pinShare :: Main (ByteCode () Stmt)
+pinShare = sds \p=True In {main =
+ d0 =. p :. noOp
+ }
+
faculty :: Int -> Main (ByteCode () Stmt)
faculty i = sds \y=i In sds \x=1 In {main =
IF (y <=. lit 1) (
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}
,("blink", ledSelection @ blink)
,("blinkShare", treturn blinkShare)
,("count", treturn count)
- ,("countTo5", treturn countTo5)
,("faculty", enterInformation "Faculty" [] @ faculty)
+ ,("pinShare", treturn pinShare)
]
instance boolExpr ByteCode
instance analogIO ByteCode
instance digitalIO ByteCode
+instance aIO ByteCode
+instance dIO ByteCode
instance userLed ByteCode
instance If ByteCode Stmt Stmt Stmt
instance If ByteCode e Stmt Stmt
digitalRead p = tell` [BCDigitalRead $ pin p]
digitalWrite p b = op b (BCDigitalWrite $ pin p)
+instance aIO ByteCode where
+ aIO p = undef
+
+instance dIO ByteCode where
+ dIO p = tell` [BCDigitalRead $ pin p]
+
instance If ByteCode Stmt Stmt Stmt where If b t e = BCIfStmt b t e
instance If ByteCode e Stmt Stmt where If b t e = BCIfStmt b t e
instance If ByteCode Stmt e Stmt where If b t e = BCIfStmt b t e
where
//This is going to include pins as well, as variables
makeStore [BCSdsFetch i] = [BCSdsStore i]
+ makeStore [BCDigitalRead i] = [BCDigitalWrite i]
+ makeStore [BCAnalogRead i] = [BCAnalogWrite i]
instance seq ByteCode where
(>>=.) _ _ = abort "undef on >>=."