1
+ #ifdef __cplusplus
2
+ extern "C" {
3
+ #endif
4
+
5
+ void yield (void );
6
+
7
+ typedef enum {
8
+ LOW = 0x0 ,
9
+ HIGH = 0x1 ,
10
+ } _pinStatus ;
11
+
12
+ typedef enum {
13
+ INPUT = 0x0 ,
14
+ OUTPUT = 0x1 ,
15
+ INPUT_PULLUP = 0x2 ,
16
+ INPUT_PULLDOWN = 0x3 ,
17
+ } _pinMode ;
18
+
19
+ #define PI 3.1415926535897932384626433832795
20
+ #define HALF_PI 1.5707963267948966192313216916398
21
+ #define TWO_PI 6.283185307179586476925286766559
22
+ #define DEG_TO_RAD 0.017453292519943295769236907684886
23
+ #define RAD_TO_DEG 57.295779513082320876798154814105
24
+ #define EULER 2.718281828459045235360287471352
25
+
26
+ #define SERIAL 0x0
27
+ #define DISPLAY 0x1
28
+
29
+ typedef enum {
30
+ CHANGE = 1 ,
31
+ FALLING = 2 ,
32
+ RISING = 3 ,
33
+ } _interruptMode ;
34
+
35
+ typedef enum {
36
+ LSBFIRST = 0 ,
37
+ MSBFIRST = 1 ,
38
+ } _spi_bitFirst_mode ;
39
+
40
+ #ifndef min
41
+ #define min (a ,b ) ((a)<(b)?(a):(b))
42
+ #endif
43
+
44
+ #ifndef max
45
+ #define max (a ,b ) ((a)>(b)?(a):(b))
46
+ #endif
47
+
48
+ #ifndef abs
49
+ #define abs (x ) ((x)>0?(x):-(x))
50
+ #endif
51
+
52
+ #ifndef constrain
53
+ #define constrain (amt ,low ,high ) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
54
+ #endif
55
+
56
+ #ifndef round
57
+ #define round (x ) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
58
+ #endif
59
+
60
+ #ifndef radians
61
+ #define radians (deg ) ((deg)*DEG_TO_RAD)
62
+ #endif
63
+
64
+ #ifndef degrees
65
+ #define degrees (rad ) ((rad)*RAD_TO_DEG)
66
+ #endif
67
+
68
+ #ifndef sq
69
+ #define sq (x ) ((x)*(x))
70
+ #endif
71
+
72
+ // interrupts() / noInterrupts() must be defined by the core
73
+
74
+ #define lowByte (w ) ((uint8_t) ((w) & 0xff))
75
+ #define highByte (w ) ((uint8_t) ((w) >> 8))
76
+
77
+ #define bitRead (value , bit ) (((value) >> (bit)) & 0x01)
78
+ #define bitSet (value , bit ) ((value) |= (1UL << (bit)))
79
+ #define bitClear (value , bit ) ((value) &= ~(1UL << (bit)))
80
+ #define bitWrite (value , bit , bitvalue ) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
81
+
82
+ typedef unsigned int word ;
83
+
84
+ #ifndef bit
85
+ #define bit (b ) (1UL << (b))
86
+ #endif
87
+
88
+ typedef bool boolean ;
89
+ typedef uint8_t byte ;
90
+
91
+ void init (void );
92
+ void initVariant (void );
93
+
94
+ int atexit (void (* func )()) __attribute__((weak ));
95
+ int main () __attribute__((weak ));
96
+
97
+ void pinMode (uint8_t pinNumber , _pinMode pinMode );
98
+ void digitalWrite (uint8_t pinNumber , _pinStatus status );
99
+ _pinStatus digitalRead (uint8_t pinNumber );
100
+ int analogRead (uint8_t pinNumber );
101
+ void analogReference (uint8_t mode );
102
+ void analogWrite (uint8_t pinNumber , int value );
103
+
104
+ unsigned long millis (void );
105
+ unsigned long micros (void );
106
+ void delay (unsigned long );
107
+ void delayMicroseconds (unsigned int us );
108
+ unsigned long pulseIn (uint8_t pin , uint8_t state , unsigned long timeout );
109
+ unsigned long pulseInLong (uint8_t pin , uint8_t state , unsigned long timeout );
110
+
111
+ void shiftOut (uint8_t dataPin , uint8_t clockPin , uint8_t bitOrder , uint8_t val );
112
+ uint8_t shiftIn (uint8_t dataPin , uint8_t clockPin , uint8_t bitOrder );
113
+
114
+ void attachInterrupt (uint8_t interruptNumber , void (* callback )(void ), _interruptMode mode );
115
+ void detachInterrupt (uint8_t interruptNumber );
116
+
117
+ void setup (void );
118
+ void loop (void );
119
+
120
+ #ifdef __cplusplus
121
+ } // extern "C"
122
+ #endif
123
+
124
+ #ifdef __cplusplus
125
+
126
+ /* C++ prototypes */
127
+ uint16_t makeWord (uint16_t w );
128
+ uint16_t makeWord (byte h , byte l );
129
+
130
+ #define word (...) makeWord(__VA_ARGS__)
131
+
132
+ unsigned long pulseIn (uint8_t pin , uint8_t state , unsigned long timeout = 1000000L );
133
+ unsigned long pulseInLong (uint8_t pin , uint8_t state , unsigned long timeout = 1000000L );
134
+
135
+ void tone (uint8_t _pin , unsigned int frequency , unsigned long duration = 0 );
136
+ void noTone (uint8_t _pin );
137
+
138
+ // WMath prototypes
139
+ long random (long );
140
+ long random (long , long );
141
+ void randomSeed (unsigned long );
142
+ long map (long , long , long , long , long );
143
+
144
+ #endif // __cplusplus
0 commit comments