]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - include/common.h
loadi seems to work now.
[z180-stamp.git] / include / common.h
index ef5af12b248940aadba8f1bdef6d16afbeafb0b7..10c4417d8b0c147de15a20e142a81fb93265a9d6 100644 (file)
@@ -1,8 +1,31 @@
+/*
+ * (C) Copyright 2014 Leo C. <erbl259-lmu@yahoo.de>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
 #ifndef COMMON_H
 #define COMMON_H
 
 #ifdef __AVR__
 #include <avr/io.h>
+#include <avr/pgmspace.h>
+#include <util/delay.h>
+
+#define udelay(n)  _delay_us(n)
+
+struct bits {
+  uint8_t b0:1;
+  uint8_t b1:1;
+  uint8_t b2:1;
+  uint8_t b3:1;
+  uint8_t b4:1;
+  uint8_t b5:1;
+  uint8_t b6:1;
+  uint8_t b7:1;
+} __attribute__((__packed__));
+
+#define SBIT(port,pin) ((*(volatile struct bits*)&port).b##pin)
 
 //TODO:
 //  Known to work: 4.8.4, 4.9.1
@@ -21,7 +44,7 @@
 #else
 #define FLASH
 #define MEMX
-#endif 
+#endif
 
 #define stringify(s)   tostring(s)
 #define tostring(s)    #s
 #define FSTR(X) ((const FLASH char[]) { X } )
 #define ARRAY_SIZE(x)  (sizeof(x) / sizeof((x)[0]))
 
+#define MIN(a,b)    ({ typeof (a) _a = (a);                                    \
+                                               typeof (b) _b = (b);                                   \
+                                               _a < _b ? _a : _b; })
+#define MAX(a,b)    ({ typeof (a) _a = (a);                                    \
+                                               typeof (b) _b = (b);                                   \
+                                               _a > _b ? _a : _b; })
 
 #ifdef __AVR__
 #define Stat GPIOR0
 extern volatile uint_least8_t Stat;
 #endif /* __AVR__ */
 
-#define S_10MS_TO      (1<<0)
-#define S_MSG_PENDING  (2<<0)
-#define S_CON_PENDING  (3<<0)
+#define S_10MS_TO              (1<<0)
+#define S_MSG_PENDING  (1<<1)
+#define S_CON_PENDING  (1<<2)
 
-static inline 
+static inline
 void my_puts(const char *s)
 {
        fputs(s, stdout);
 }
 
-static inline 
+static inline
 void my_puts_P(const char *s)
 {
 #ifdef __AVR__
@@ -57,4 +86,3 @@ void my_puts_P(const char *s)
 }
 
 #endif /* COMMON_H */
-