diff --git a/arduino.wa b/arduino.wa index 4e42b07cd825cb7501a6739735454ecf925bb8bd..04aa687df8ef12a39d92fc248a86d963ae77c2de 100644 --- a/arduino.wa +++ b/arduino.wa @@ -5,7 +5,7 @@ import "syscall/arduino" var LED = arduino.GetPinLED() fn init() { - arduino.PinMode(LED, 1) + arduino.PinMode(LED, arduino.OUTPUT) arduino.Println("Wa/Arduino is running 😎") } diff --git a/internal/app/waruntime/arduino.go b/internal/app/waruntime/arduino.go index 9c10d3f418fbd4c6b505bbf86a04477fcb810a9c..8d3dedac4c9b47a2afa806ce730f4f0f1bdd0963 100644 --- a/internal/app/waruntime/arduino.go +++ b/internal/app/waruntime/arduino.go @@ -32,17 +32,24 @@ func ArduinoInstantiate(ctx context.Context, rt wazero.Runtime) (api.Closer, err Export("delay"). NewFunctionBuilder(). WithFunc(func(ctx context.Context, pin, mode int32) { - if mode == 0 { - fmt.Printf("arduino.pinMode(%d, %s)\n", pin, "LOW") - } else { - fmt.Printf("arduino.pinMode(%d, %s)\n", pin, "HIGH") + switch mode { + case 0: + fmt.Printf("arduino.pinMode(%d, %s)\n", pin, "INPUT") + case 1: + fmt.Printf("arduino.pinMode(%d, %s)\n", pin, "OUTPUT") + default: + fmt.Printf("arduino.pinMode(%d, %s)\n", pin, "INPUT_PULLUP") } }). WithParameterNames("pin", "mode"). Export("pinMode"). NewFunctionBuilder(). WithFunc(func(ctx context.Context, pin, value int32) { - fmt.Printf("arduino.digitalWrite(%d, %d)\n", pin, value) + if value == 0 { + fmt.Printf("arduino.digitalWrite(%d, %s)\n", pin, "LOW") + } else { + fmt.Printf("arduino.digitalWrite(%d, %s)\n", pin, "HIGH") + } }). WithParameterNames("pin", "value"). Export("digitalWrite").