
Instead of trying to modify periperhals directly, external functions are called. For example, __tinygo_gpio_set sets a GPIO pin to a specified value (high or low). It is expected that binaries made this way will be linked with some extra libraries that implement support for these functions. One particularly interesting case is this experimental board simulator: https://github.com/aykevl/tinygo-play Compiling code to WebAssembly with the correct build tag for a board will enable this board to be simulated in the browser. Atmel/Microchip based SAMD boards are not currently supported, because their I2C/SPI support is somewhat uncommon and harder to support in the machine API. They may require a modification to the machine API for proper support.
24 строки
338 Б
Go
24 строки
338 Б
Go
// +build arduino
|
|
|
|
package machine
|
|
|
|
const CPU_FREQUENCY = 16000000
|
|
|
|
// LED on the Arduino
|
|
const LED Pin = 13
|
|
|
|
// ADC on the Arduino
|
|
const (
|
|
ADC0 Pin = 0
|
|
ADC1 Pin = 1
|
|
ADC2 Pin = 2
|
|
ADC3 Pin = 3
|
|
ADC4 Pin = 4 // Used by TWI for SDA
|
|
ADC5 Pin = 5 // Used by TWI for SCL
|
|
)
|
|
|
|
// UART pins
|
|
const (
|
|
UART_TX_PIN Pin = 1
|
|
UART_RX_PIN Pin = 0
|
|
)
|