roo_display
API Documentation for roo_display
Loading...
Searching...
No Matches
progmem.h
Go to the documentation of this file.
1#pragma once
2
3#ifdef ARDUINO
4#ifdef __AVR__
5#else
6#include <pgmspace.h>
7#endif
8#else // !ARDUINO
9#ifndef PROGMEM
10#define PROGMEM
11#endif
12
13#ifndef pgm_read_byte
14#define pgm_read_byte(addr) (*(const unsigned char *)(addr))
15#endif
16
17#ifndef pgm_read_word
18#define pgm_read_word(addr) \
19 ({ \
20 typeof(addr) _addr = (addr); \
21 *(const unsigned short *)(_addr); \
22 })
23#endif
24
25#ifndef pgm_read_dword
26#define pgm_read_dword(addr) \
27 ({ \
28 typeof(addr) _addr = (addr); \
29 *(const unsigned long *)(_addr); \
30 })
31#endif
32
33#ifndef pgm_read_float
34#define pgm_read_float(addr) \
35 ({ \
36 typeof(addr) _addr = (addr); \
37 *(const float *)(_addr); \
38 })
39#endif
40
41#ifndef pgm_read_ptr
42#define pgm_read_ptr(addr) \
43 ({ \
44 typeof(addr) _addr = (addr); \
45 *(void *const *)(_addr); \
46 })
47#endif
48#endif