examples: clean up examples and add blinky1 for Arduino
Arduino has trouble supporting anything that's not extremely simple, so add a simple blinky example for it. Also, it may be useful anyway.
Этот коммит содержится в:
родитель
17b5b6ec5b
коммит
9101ea11bf
5 изменённых файлов: 35 добавлений и 7 удалений
13
Makefile
13
Makefile
|
@ -3,7 +3,7 @@
|
||||||
all: tgo
|
all: tgo
|
||||||
tgo: build/tgo
|
tgo: build/tgo
|
||||||
|
|
||||||
.PHONY: all tgo run-hello run-blinky clean fmt gen-device gen-device-nrf
|
.PHONY: all tgo run-test run-blinky run-blinky2 clean fmt gen-device gen-device-nrf
|
||||||
|
|
||||||
# Custom LLVM toolchain.
|
# Custom LLVM toolchain.
|
||||||
LLVM := $(shell go env GOPATH)/src/github.com/aykevl/llvm/bindings/go/llvm/workdir/llvm_build/bin/
|
LLVM := $(shell go env GOPATH)/src/github.com/aykevl/llvm/bindings/go/llvm/workdir/llvm_build/bin/
|
||||||
|
@ -56,11 +56,12 @@ endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
run-hello: build/hello
|
run-test: build/test
|
||||||
./build/hello
|
./build/test
|
||||||
|
|
||||||
run-blinky: build/blinky
|
run-blinky: run-blinky2
|
||||||
./build/blinky
|
run-blinky2: build/blinky2
|
||||||
|
./build/blinky2
|
||||||
|
|
||||||
ifeq ($(TARGET),pca10040)
|
ifeq ($(TARGET),pca10040)
|
||||||
flash-%: build/%.hex
|
flash-%: build/%.hex
|
||||||
|
@ -74,7 +75,7 @@ clean:
|
||||||
@rm -rf build
|
@rm -rf build
|
||||||
|
|
||||||
fmt:
|
fmt:
|
||||||
@go fmt . ./src/examples/hello
|
@go fmt . ./src/examples/test
|
||||||
@go fmt ./src/runtime/*.go
|
@go fmt ./src/runtime/*.go
|
||||||
|
|
||||||
gen-device: gen-device-nrf
|
gen-device: gen-device-nrf
|
||||||
|
|
|
@ -131,7 +131,7 @@ development.
|
||||||
|
|
||||||
After LLVM has been built, you can run an example with:
|
After LLVM has been built, you can run an example with:
|
||||||
|
|
||||||
make run-hello
|
make run-test
|
||||||
|
|
||||||
For a blinky example on the PCA10040 development board, do this:
|
For a blinky example on the PCA10040 development board, do this:
|
||||||
|
|
||||||
|
|
20
src/examples/blinky1/blinky1.go
Обычный файл
20
src/examples/blinky1/blinky1.go
Обычный файл
|
@ -0,0 +1,20 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
// This is the most minimal blinky example and should run almost everywhere.
|
||||||
|
|
||||||
|
import (
|
||||||
|
"machine"
|
||||||
|
"runtime"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
led := machine.GPIO{machine.LED}
|
||||||
|
led.Configure(machine.GPIOConfig{Mode: machine.GPIO_OUTPUT})
|
||||||
|
for {
|
||||||
|
led.Low()
|
||||||
|
runtime.Sleep(runtime.Millisecond * 500)
|
||||||
|
|
||||||
|
led.High()
|
||||||
|
runtime.Sleep(runtime.Millisecond * 500)
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,10 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
|
// This blinky is a bit more advanced than blink1, with two goroutines running
|
||||||
|
// at the same time and blinking a different LED. The delay of led2 is slightly
|
||||||
|
// less than half of led1, which would be hard to do without some sort of
|
||||||
|
// concurrency.
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"machine"
|
"machine"
|
||||||
"runtime"
|
"runtime"
|
|
@ -1,5 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
|
// This file is here to test features of the Go compiler.
|
||||||
|
|
||||||
import "unicode"
|
import "unicode"
|
||||||
|
|
||||||
type Thing struct {
|
type Thing struct {
|
Загрузка…
Создание таблицы
Сослаться в новой задаче