提交 09bcc896 编写于 作者: chai2010's avatar chai2010

添加 wasm-arduino 例子

上级 e6a41eaf
......@@ -12,4 +12,8 @@ build-wasm:
win-exe-icon:
windres -o main_rc_windows.syso main.rc
arduino:
go run main.go build -target=arduino arduino.wa
wat2wasm a.out.wat -o a.out.wasm
clean:
# 版权 @2022 凹语言 作者。保留所有权利。
import "syscall/arduino"
var LED = arduino.GetPinLED()
fn init() {
arduino.PinMode(LED, 1)
arduino.Println("Wa is running 😎")
}
fn main() {
for {
arduino.DigitalWrite(LED, arduino.HIGH)
arduino.Delay(100)
arduino.DigitalWrite(LED, arduino.LOW)
arduino.Delay(900)
}
}
# 版权 @2019 凹语言 作者。保留所有权利。
#wa:import wa_js_env waPrintI32
#wa:linkname $runtime.waPrintI32
fn waPrintI32(i: i32)
#wa:import wa_js_env waPrintRune
#wa:linkname $runtime.waPrintRune
fn waPrintRune(ch: i32)
#wa:import wa_js_env waPuts
#wa:linkname $runtime.waPuts
fn waPuts(ptr: i32, len: i32)
# 版权 @2022 凹语言 作者。保留所有权利。
var WAOS = "arduino"
#wa:linkname $runtime.waPrintI32
fn waPrintI32(i: i32) {}
#wa:linkname $runtime.waPrintRune
fn waPrintRune(ch: i32) {}
#wa:linkname $runtime.waPuts
fn waPuts(ptr: i32, len: i32) {}
# 版权 @2022 凹语言 作者。保留所有权利。
var WAOS = "chrome"
#wa:import wa_js_env waPrintI32
#wa:linkname $runtime.waPrintI32
fn waPrintI32(i: i32)
#wa:import wa_js_env waPrintRune
#wa:linkname $runtime.waPrintRune
fn waPrintRune(ch: i32)
#wa:import wa_js_env waPuts
#wa:linkname $runtime.waPuts
fn waPuts(ptr: i32, len: i32)
# 版权 @2022 凹语言 作者。保留所有权利。
var WAOS = "walang"
#wa:import wa_js_env waPrintI32
#wa:linkname $runtime.waPrintI32
fn waPrintI32(i: i32)
#wa:import wa_js_env waPrintRune
#wa:linkname $runtime.waPrintRune
fn waPrintRune(ch: i32)
#wa:import wa_js_env waPuts
#wa:linkname $runtime.waPuts
fn waPuts(ptr: i32, len: i32)
# 版权 @2022 凹语言 作者。保留所有权利。
var WAOS = "wasi"
#wa:import wa_js_env waPrintI32
#wa:linkname $runtime.waPrintI32
fn waPrintI32(i: i32)
#wa:import wa_js_env waPrintRune
#wa:linkname $runtime.waPrintRune
fn waPrintRune(ch: i32)
#wa:import wa_js_env waPuts
#wa:linkname $runtime.waPuts
fn waPuts(ptr: i32, len: i32)
# 版权 @2022 凹语言 作者。保留所有权利。
const (
LOW = 0
HIGH = 1
var (
LOW :i32 = 0
HIGH :i32 = 1
INPUT = 0
OUTPUT = 1
INPUT_PULLUP = 2
INPUT :i32 = 0
OUTPUT :i32 = 1
INPUT_PULLUP :i32 = 2
)
#wa:import arduino millis
#wa:linkname $waMillis
fn Millis() => uint
fn Millis() => i32
#wa:import arduino delay
#wa:linkname $waDelay
fn Delay(ms: uint)
fn Delay(ms: i32)
#wa:import arduino pinMode
#wa:linkname $waPinMode
fn PinMode(pin, mode: uint)
fn PinMode(pin, mode: i32)
#wa:import arduino digitalWrite
#wa:linkname $waDigitalWrite
fn DigitalWrite(pin, value: uint)
fn DigitalWrite(pin, value: i32)
#wa:import arduino getPinLED
#wa:linkname $waGetPinLED
fn GetPinLED() => uint
fn GetPinLED() => i32
#wa:import arduino print
#wa:linkname $waPrint
......@@ -35,27 +35,13 @@ fn Print(s: string)
#wa:import arduino getGreeting
#wa:linkname $waGetGreeting
fn _getGreeting(buf: *byte, maxlen: uint)
fn _getGreeting(buf: *byte, maxlen: i32)
fn Println(s: string) {
Print(s)
Print("\n")
}
fn GetGreeting() => string {
var buf = make([]byte, 64)
_getGreeting(&buf[0], 64)
# Find '\0'
n := -1
for i, b := range buf {
if b == 0 {
break
}
n = i
}
return string(buf[:n+1])
}
#wa:linkname $waPrintI32
fn waPrintI32(i: i32) {
# TODO
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册