aboutsummaryrefslogtreecommitdiff
path: root/examples/spiblink/master
diff options
context:
space:
mode:
Diffstat (limited to 'examples/spiblink/master')
-rw-r--r--examples/spiblink/master/.config35
-rw-r--r--examples/spiblink/master/Kconfig20
-rw-r--r--examples/spiblink/master/Makefile6
-rw-r--r--examples/spiblink/master/master.c17
4 files changed, 78 insertions, 0 deletions
diff --git a/examples/spiblink/master/.config b/examples/spiblink/master/.config
new file mode 100644
index 0000000..08e8924
--- /dev/null
+++ b/examples/spiblink/master/.config
@@ -0,0 +1,35 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# AVR-IOE spiblink master configuration
+#
+SPIBLINK_MASTER_DEFAULTS=y
+CONFIG_BUTTON_IO="IO_C1"
+CONFIG_LED_IO="IO_B0"
+MMCU="atmega328p"
+ATMEGA328P=y
+# ATMEGA168A is not set
+# ATTINY85 is not set
+# ATTINY4313 is not set
+F_CPU=16000
+
+#
+# Compilation options
+#
+CHOST="avr-"
+CCFLAGS="-Os -ffunction-sections -fdata-sections -fshort-enums -Wall"
+CLDFLAGS=""
+CBUILD=""
+BUILD_CFLAGS="-Wall"
+BUILD_LDFLAGS=""
+# CONFIG_ERRORS is not set
+MCUSUPPORT_IOPORTS=y
+CONFIG_IOPORTS=y
+MCUSUPPORT_PCINT0=y
+MCUSUPPORT_PCINT1=y
+MCUSUPPORT_PCINT2=y
+# CONFIG_IOPORTS_PCINT is not set
+MCUSUPPORT_SPI=y
+CONFIG_SPI=y
+MCUSUPPORT_USART=y
+# CONFIG_USART is not set
+# CONFIG_TIMERS is not set
diff --git a/examples/spiblink/master/Kconfig b/examples/spiblink/master/Kconfig
new file mode 100644
index 0000000..dc9e8b5
--- /dev/null
+++ b/examples/spiblink/master/Kconfig
@@ -0,0 +1,20 @@
+mainmenu "AVR-IOE spiblink master configuration"
+
+# We need CONFIG_IOPORTS, but we don't care about anything else.
+config SPIBLINK_MASTER_DEFAULTS
+ bool
+ default y
+ select CONFIG_SPI
+ select CONFIG_IOPORTS
+
+config CONFIG_BUTTON_IO
+ string "Input pin used to connect button"
+ depends on SPIBLINK_MASTER_DEFAULTS
+ default "IO_C1"
+
+config CONFIG_LED_IO
+ string "Output pin used to connect test led"
+ depends on SPIBLINK_MASTER_DEFAULTS
+ default "IO_B0"
+
+source "../../../ioe.Kconfig"
diff --git a/examples/spiblink/master/Makefile b/examples/spiblink/master/Makefile
new file mode 100644
index 0000000..d412e92
--- /dev/null
+++ b/examples/spiblink/master/Makefile
@@ -0,0 +1,6 @@
+EXAMPLE_NAME = spiblink_master
+EXAMPLE_PATH = spiblink/master
+SRC = master.c
+
+IOEROOT=../../../
+include ../../examples.mk
diff --git a/examples/spiblink/master/master.c b/examples/spiblink/master/master.c
new file mode 100644
index 0000000..73a8aa9
--- /dev/null
+++ b/examples/spiblink/master/master.c
@@ -0,0 +1,17 @@
+#include <avr/io.h>
+#include <util/delay.h>
+#include <ioport.h>
+#include <spi.h>
+
+int main() {
+ io_setin(CONFIG_BUTTON_IO, IO_PULLUP);
+ io_setout(CONFIG_LED_IO);
+
+ spi_init(SPI_MODE_MASTER);
+ // SREG |= _BV(7); // Enable interrupts TODO I don't think that we need this
+
+ while (1) {
+ io_set(CONFIG_LED_IO, io_get(CONFIG_BUTTON_IO));
+ spi_send(io_get(CONFIG_BUTTON_IO));
+ }
+}