Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wa-lang
wa
提交
09bcc896
wa
项目概览
wa-lang
/
wa
11 个月 前同步成功
通知
68
Star
655
Fork
45
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
wa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
09bcc896
编写于
11月 26, 2022
作者:
chai2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加 wasm-arduino 例子
上级
e6a41eaf
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
80 addition
and
38 deletion
+80
-38
Makefile
Makefile
+4
-0
arduino.wa
arduino.wa
+19
-0
internal/waroot/_waroot/src/runtime/runtime.wa
internal/waroot/_waroot/src/runtime/runtime.wa
+0
-12
internal/waroot/_waroot/src/runtime/runtime_arduino.wa
internal/waroot/_waroot/src/runtime/runtime_arduino.wa
+9
-0
internal/waroot/_waroot/src/runtime/runtime_chrome.wa
internal/waroot/_waroot/src/runtime/runtime_chrome.wa
+12
-0
internal/waroot/_waroot/src/runtime/runtime_walang.wa
internal/waroot/_waroot/src/runtime/runtime_walang.wa
+12
-0
internal/waroot/_waroot/src/runtime/runtime_wasi.wa
internal/waroot/_waroot/src/runtime/runtime_wasi.wa
+12
-0
internal/waroot/_waroot/src/syscall/arduino/arduino.wa
internal/waroot/_waroot/src/syscall/arduino/arduino.wa
+12
-26
未找到文件。
Makefile
浏览文件 @
09bcc896
...
...
@@ -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
:
arduino.wa
0 → 100644
浏览文件 @
09bcc896
# 版权 @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)
}
}
internal/waroot/_waroot/src/runtime/runtime.wa
浏览文件 @
09bcc896
# 版权 @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)
internal/waroot/_waroot/src/runtime/runtime_arduino.wa
浏览文件 @
09bcc896
# 版权 @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) {}
internal/waroot/_waroot/src/runtime/runtime_chrome.wa
浏览文件 @
09bcc896
# 版权 @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)
internal/waroot/_waroot/src/runtime/runtime_walang.wa
浏览文件 @
09bcc896
# 版权 @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)
internal/waroot/_waroot/src/runtime/runtime_wasi.wa
浏览文件 @
09bcc896
# 版权 @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)
internal/waroot/_waroot/src/syscall/arduino/arduino.wa
浏览文件 @
09bcc896
# 版权 @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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录