@@ -39,16 +39,49 @@ THE SOFTWARE.
39
39
40
40
#include " I2Cdev.h"
41
41
42
- // supporting link: http://forum.arduino.cc/index.php?&topic=143444.msg1079517#msg1079517
43
- // also: http://forum.arduino.cc/index.php?& topic=141571.msg1062899#msg1062899s
42
+ // Tom Carpenter's conditional PROGMEM code
43
+ // http://forum.arduino.cc/index.php?topic=129407.0
44
44
#ifdef __AVR__
45
- #include < avr/pgmspace.h>
45
+ #include < avr/pgmspace.h>
46
46
#else
47
- #define PROGMEM /* empty */
48
- #define pgm_read_byte (x ) (*(x))
49
- #define pgm_read_word (x ) (*(x))
50
- #define pgm_read_float (x ) (*(x))
51
- #define PSTR (STR ) STR
47
+ // Teensy 3.0 library conditional PROGMEM code from Paul Stoffregen
48
+ #ifndef __PGMSPACE_H_
49
+ #define __PGMSPACE_H_ 1
50
+ #include < inttypes.h>
51
+
52
+ #define PROGMEM
53
+ #define PGM_P const char *
54
+ #define PSTR (str ) (str)
55
+ #define F (x ) x
56
+
57
+ typedef void prog_void;
58
+ typedef char prog_char;
59
+ typedef unsigned char prog_uchar;
60
+ typedef int8_t prog_int8_t ;
61
+ typedef uint8_t prog_uint8_t ;
62
+ typedef int16_t prog_int16_t ;
63
+ typedef uint16_t prog_uint16_t ;
64
+ typedef int32_t prog_int32_t ;
65
+ typedef uint32_t prog_uint32_t ;
66
+
67
+ #define strcpy_P (dest, src ) strcpy((dest), (src))
68
+ #define strcat_P (dest, src ) strcat((dest), (src))
69
+ #define strcmp_P (a, b ) strcmp((a), (b))
70
+
71
+ #define pgm_read_byte (addr ) (*(const unsigned char *)(addr))
72
+ #define pgm_read_word (addr ) (*(const unsigned short *)(addr))
73
+ #define pgm_read_dword (addr ) (*(const unsigned long *)(addr))
74
+ #define pgm_read_float (addr ) (*(const float *)(addr))
75
+
76
+ #define pgm_read_byte_near (addr ) pgm_read_byte(addr)
77
+ #define pgm_read_word_near (addr ) pgm_read_word(addr)
78
+ #define pgm_read_dword_near (addr ) pgm_read_dword(addr)
79
+ #define pgm_read_float_near (addr ) pgm_read_float(addr)
80
+ #define pgm_read_byte_far (addr ) pgm_read_byte(addr)
81
+ #define pgm_read_word_far (addr ) pgm_read_word(addr)
82
+ #define pgm_read_dword_far (addr ) pgm_read_dword(addr)
83
+ #define pgm_read_float_far (addr ) pgm_read_float(addr)
84
+ #endif
52
85
#endif
53
86
54
87
// Magnetometer Registers
0 commit comments