一秒闪,这个是我们搞单片机的时候,第一个会用的的例子, 使用 gasp 来开发,会变得更简单。
如果没有安装 gasp 的话请参考 gasp 物联网编程语言快速入门 安装部分。
我们新建一个项目
gasp new blink
cd blink
我们修改文件 main.gasp, 将里面的代码删除。
gpio blink {
pin: "LED_BUILTIN",
state: LOW
}
every toggle_blink 1000
如上代码,添加一个 gpio blink, 使其使用管脚为 LED_BUILTIN 的内置 led 灯, 并将默认点位设为 LOW。然后设定每个 1000 ms 执行 toggle_blink。
执行 gasp compile, 编译后代码如下
unsigned long get_current_time_ms();
unsigned long toggle_blink_timer_ms = get_current_time_ms();
int gpio_blink_pin = LED_BUILTIN;
int gpio_blink_state = LOW;
void setup() {
pinMode(gpio_blink_pin, OUTPUT);
}
void loop() {
if (toggle_blink_timer_ms + 1000 < get_current_time_ms()) {
toggle_blink();
toggle_blink_timer_ms = get_current_time_ms();
}
}
unsigned long get_current_time_ms() {
return millis();
}
void open_blink() {
gpio_blink_state = HIGH;
digitalWrite(gpio_blink_pin, gpio_blink_state);
}
void close_blink() {
gpio_blink_state = LOW;
digitalWrite(gpio_blink_pin, gpio_blink_state);
}
void toggle_blink() {
if (gpio_blink_state == HIGH) {
close_blink();
} else {
open_blink();
}
}
最后通过 arduino 编译上传到 arduino 板子上,我们的例子就搞定。