@@ -73,7 +73,7 @@ void yield(void);
73
73
#define INTERNAL INTERNAL1V1
74
74
#define INTERNAL2V56 9
75
75
#define INTERNAL2V56_EXTCAP 13
76
- #else
76
+ #else
77
77
#if defined(__AVR_ATmega1280__ ) || defined(__AVR_ATmega2560__ ) || defined(__AVR_ATmega1284__ ) || defined(__AVR_ATmega1284P__ ) || defined(__AVR_ATmega644__ ) || defined(__AVR_ATmega644A__ ) || defined(__AVR_ATmega644P__ ) || defined(__AVR_ATmega644PA__ )
78
78
#define INTERNAL1V1 2
79
79
#define INTERNAL2V56 3
@@ -108,11 +108,16 @@ void yield(void);
108
108
#define lowByte (w ) ((uint8_t) ((w) & 0xff))
109
109
#define highByte (w ) ((uint8_t) ((w) >> 8))
110
110
111
+ #define packToInt (h ,l ) ((uint16_t)h)<<8 | (uint16_t)l)
112
+ #define packToLong (i3 ,i2 ,i1 ,i0 ) (((uint32_t)i3<<24) | ((uint32_t)i2<<16) | ((uint32_t)i1<<8) | (uint32_t)i0)
113
+
111
114
#define bitRead (value , bit ) (((value) >> (bit)) & 0x01)
112
115
#define bitSet (value , bit ) ((value) |= (1UL << (bit)))
113
116
#define bitClear (value , bit ) ((value) &= ~(1UL << (bit)))
114
117
#define bitToggle (value , bit ) ((value) ^= (1UL << (bit)))
115
118
#define bitWrite (value , bit , bitvalue ) ((bitvalue) ? bitSet(value, bit) : bitClear(value, bit))
119
+ #define bitIsSet (value , bit ) ((value) & (1UL << (bit)))
120
+ #define bitIsClear (value , bit ) (!((value) & (1UL << (bit))))
116
121
117
122
// avr-libc defines _NOP() since 1.6.2
118
123
#ifndef _NOP
@@ -172,7 +177,7 @@ extern const uint8_t PROGMEM digital_pin_to_timer_PGM[];
172
177
173
178
// Get the bit location within the hardware port of the given virtual pin.
174
179
// This comes from the pins_*.c file for the active board configuration.
175
- //
180
+ //
176
181
// These perform slightly better as macros compared to inline functions
177
182
//
178
183
#define digitalPinToPort (P ) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) )
0 commit comments