]> cloudbase.mooo.com Git - z180-stamp.git/blob - include/common.h
74339df76dd0ce24d336ea5a50c434705ee41e2e
[z180-stamp.git] / include / common.h
1 #ifndef COMMON_H
2 #define COMMON_H
3
4 #ifdef __AVR__
5 #include <avr/io.h>
6 #include <avr/pgmspace.h>
7
8 //TODO:
9 // Known to work: 4.8.4, 4.9.1
10 // Known to fail: 4.8.3, 4.9.0
11 #define GCC_BUG_61443 1
12
13 #else
14 // TODO: stm32
15 #endif /* __AVR__ */
16
17 #include <stdio.h>
18
19 #ifdef __FLASH
20 #define FLASH __flash
21 #define MEMX __memx
22 #else
23 #define FLASH
24 #define MEMX
25 #endif
26
27 #define stringify(s) tostring(s)
28 #define tostring(s) #s
29
30 #define FSTR(X) ((const FLASH char[]) { X } )
31 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
32
33
34 #ifdef __AVR__
35 #define Stat GPIOR0
36 #else
37 extern volatile uint_least8_t Stat;
38 #endif /* __AVR__ */
39
40 #define S_10MS_TO (1<<0)
41 #define S_MSG_PENDING (2<<0)
42 #define S_CON_PENDING (3<<0)
43
44 static inline
45 void my_puts(const char *s)
46 {
47 fputs(s, stdout);
48 }
49
50 static inline
51 void my_puts_P(const char *s)
52 {
53 #ifdef __AVR__
54 fputs_P(s, stdout);
55 #else
56 fputs(s, stdout);
57 #endif /* __AVR__ */
58 }
59
60 #endif /* COMMON_H */
61