From: Keith Packard Date: Sat, 5 Nov 2022 22:18:27 +0000 (-0700) Subject: snekboard: Add samd21 SPI test function X-Git-Tag: 1.9.13~1^2~26^2~52 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=fdc1facebf1d2818394b155a91b68e06db198728 snekboard: Add samd21 SPI test function Just sends 'hello' Signed-off-by: Keith Packard --- diff --git a/src/snekboard/Makefile b/src/snekboard/Makefile index aacd132b..53a37c68 100644 --- a/src/snekboard/Makefile +++ b/src/snekboard/Makefile @@ -28,7 +28,8 @@ ALTOS_SRC = \ ao_panic.c \ ao_timer.c \ ao_mutex.c \ - ao_usb_samd21.c + ao_usb_samd21.c \ + ao_spi_samd21.c PRODUCT=SnekBoard PRODUCT_DEF=-DSNEKBOARD diff --git a/src/snekboard/ao_pins.h b/src/snekboard/ao_pins.h index 01cfed65..80b2cb77 100644 --- a/src/snekboard/ao_pins.h +++ b/src/snekboard/ao_pins.h @@ -42,6 +42,6 @@ #define AO_APBA_PRESCALER 1 #define HAS_SPI_0 1 -#define SPI_0_PA08_PA09_PA10_PA11 1 +#define SPI_0_PA08_PA09_PA10 1 #endif /* _AO_PINS_H_ */ diff --git a/src/snekboard/snekboard.c b/src/snekboard/snekboard.c index 19f5975c..09581aff 100644 --- a/src/snekboard/snekboard.c +++ b/src/snekboard/snekboard.c @@ -15,13 +15,34 @@ #include #include +#define SNEK_CS_PORT (&samd21_port_a) +#define SNEK_CS_PIN (11) +#define SNEK_SPI_INDEX AO_SPI_0_PA08_PA09_PA10 +#define SNEK_SPI_SPEED ao_spi_speed(1000000) + +static void +ao_spi_test(void) +{ + ao_spi_get_bit(SNEK_CS_PORT, SNEK_CS_PIN, SNEK_SPI_INDEX, SNEK_SPI_SPEED); + ao_spi_send("hello", 5, SNEK_SPI_INDEX); + ao_spi_put_bit(SNEK_CS_PORT, SNEK_CS_PIN, SNEK_SPI_INDEX); +} + +const struct ao_cmds ao_spi_cmds[] = { + { ao_spi_test, "s \0Send some bytes over spi" }, + { 0, NULL }, +}; + int main(void) { ao_led_init(); ao_clock_init(); ao_task_init(); ao_timer_init(); + ao_spi_init(); ao_usb_init(); + ao_cmd_register(ao_spi_cmds); + ao_spi_init_cs(&samd21_port_a, 1 << 11); /* analog 8 for CS */ ao_cmd_init(); ao_start_scheduler(); return 0;