File tree 1 file changed +10
-1
lines changed
1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -175,13 +175,22 @@ extern const uint8_t PROGMEM digital_pin_to_timer_PGM[];
175
175
//
176
176
// These perform slightly better as macros compared to inline functions
177
177
//
178
+ #define analogInPinToBit (P ) (P)
179
+ #if (FLASHEND > 0xFFFF )
180
+ #define digitalPinToPort (P ) ( pgm_read_byte_far( pgm_get_far_address( digital_pin_to_port_PGM ) + (P) ) )
181
+ #define digitalPinToBitMask (P ) ( pgm_read_byte_far( pgm_get_far_address( digital_pin_to_bit_mask_PGM ) + (P) ) )
182
+ #define digitalPinToTimer (P ) ( pgm_read_byte_far( pgm_get_far_address( digital_pin_to_timer_PGM ) + (P) ) )
183
+ #define portOutputRegister (P ) ( (volatile uint8_t *)( pgm_read_word_far( pgm_get_far_address( port_to_output_PGM ) + (P))) )
184
+ #define portInputRegister (P ) ( (volatile uint8_t *)( pgm_read_word_far( pgm_get_far_address( port_to_input_PGM ) + (P))) )
185
+ #define portModeRegister (P ) ( (volatile uint8_t *)( pgm_read_word_far( pgm_get_far_address( port_to_mode_PGM ) + (P))) )
186
+ #else
178
187
#define digitalPinToPort (P ) ( pgm_read_byte( digital_pin_to_port_PGM + (P) ) )
179
188
#define digitalPinToBitMask (P ) ( pgm_read_byte( digital_pin_to_bit_mask_PGM + (P) ) )
180
189
#define digitalPinToTimer (P ) ( pgm_read_byte( digital_pin_to_timer_PGM + (P) ) )
181
- #define analogInPinToBit (P ) (P)
182
190
#define portOutputRegister (P ) ( (volatile uint8_t *)( pgm_read_word( port_to_output_PGM + (P))) )
183
191
#define portInputRegister (P ) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) )
184
192
#define portModeRegister (P ) ( (volatile uint8_t *)( pgm_read_word( port_to_mode_PGM + (P))) )
193
+ #endif
185
194
186
195
#define NOT_A_PIN 0
187
196
#define NOT_A_PORT 0
You can’t perform that action at this time.
0 commit comments