From 68eb5f7bf403f4a8cfc42b54b6a7fea087d34960 Mon Sep 17 00:00:00 2001
From: Daniel Friesel <derf@finalrewind.org>
Date: Thu, 12 Jul 2018 10:57:02 +0200
Subject: [PATCH] Add delay_us on AVR arch

---
 include/arch.h                | 1 +
 src/arch/arduino-nano/arch.cc | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/include/arch.h b/include/arch.h
index b588e66..70bc41c 100644
--- a/include/arch.h
+++ b/include/arch.h
@@ -9,6 +9,7 @@ class Arch {
 		Arch () {}
 		void setup();
 		void idle_loop();
+		void delay_us(unsigned char const us);
 };
 
 extern Arch arch;
diff --git a/src/arch/arduino-nano/arch.cc b/src/arch/arduino-nano/arch.cc
index f35cb1d..16d09fb 100644
--- a/src/arch/arduino-nano/arch.cc
+++ b/src/arch/arduino-nano/arch.cc
@@ -1,6 +1,7 @@
 #include "arch.h"
 #include <avr/io.h>
 #include <avr/interrupt.h>
+#include <util/delay.h>
 
 void Arch::setup(void)
 {
@@ -54,6 +55,11 @@ void Arch::idle_loop(void)
 	}
 }
 
+void Arch::delay_us(unsigned char const us)
+{
+	__builtin_avr_delay_cycles(1600);
+}
+
 Arch arch;
 
 #if defined(WITH_LOOP) || defined(TIMER_S)
-- 
GitLab