用 gasp 开发一个闪灯

·  阅读 294

一秒闪,这个是我们搞单片机的时候,第一个会用的的例子, 使用 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 板子上,我们的例子就搞定。

分类:
阅读
标签: