aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/machine/machine_nrf51.go
blob: ed64c0c6362aeb6161e7d9e8d13f06d266bcc98c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// +build nrf51

package machine

import (
	"device/nrf"
)

const CPU_FREQUENCY = 16000000

// Get peripheral and pin number for this GPIO pin.
func (p GPIO) getPortPin() (*nrf.GPIO_Type, uint8) {
	return nrf.GPIO, p.Pin
}

func (uart UART) setPins(tx, rx uint32) {
	nrf.UART0.PSELTXD = nrf.RegValue(tx)
	nrf.UART0.PSELRXD = nrf.RegValue(rx)
}

//go:export UART0_IRQHandler
func handleUART0() {
	UART0.handleInterrupt()
}

func (i2c I2C) setPins(scl, sda uint8) {
	i2c.Bus.PSELSCL = nrf.RegValue(scl)
	i2c.Bus.PSELSDA = nrf.RegValue(sda)
}

// SPI
func (spi SPI) setPins(sck, mosi, miso uint8) {
	if sck == 0 {
		sck = SPI0_SCK_PIN
	}
	if mosi == 0 {
		mosi = SPI0_MOSI_PIN
	}
	if miso == 0 {
		miso = SPI0_MISO_PIN
	}
	spi.Bus.PSELSCK = nrf.RegValue(sck)
	spi.Bus.PSELMOSI = nrf.RegValue(mosi)
	spi.Bus.PSELMISO = nrf.RegValue(miso)
}