@@ -140,10 +140,10 @@ struct gpio_port_callback *find_gpio_port_callback(const struct device *dev)
140
140
141
141
void setInterruptHandler (pin_size_t pinNumber, voidFuncPtr func)
142
142
{
143
- struct gpio_port_callback *pcb = find_gpio_port_callback (arduino_pins[ pinNumber]. port );
143
+ struct gpio_port_callback *pcb = find_gpio_port_callback (local_gpio_port ( pinNumber) );
144
144
145
145
if (pcb) {
146
- pcb->handlers [BIT (arduino_pins[ pinNumber]. pin )].handler = func;
146
+ pcb->handlers [BIT (local_gpio_pin ( pinNumber) )].handler = func;
147
147
}
148
148
}
149
149
@@ -229,26 +229,26 @@ void yield(void) {
229
229
*/
230
230
void pinMode (pin_size_t pinNumber, PinMode pinMode) {
231
231
if (pinMode == INPUT) { // input mode
232
- gpio_pin_configure_dt (&arduino_pins[ pinNumber] ,
232
+ global_gpio_pin_configure ( pinNumber,
233
233
GPIO_INPUT | GPIO_ACTIVE_HIGH);
234
234
} else if (pinMode == INPUT_PULLUP) { // input with internal pull-up
235
- gpio_pin_configure_dt (&arduino_pins[ pinNumber] ,
235
+ global_gpio_pin_configure ( pinNumber,
236
236
GPIO_INPUT | GPIO_PULL_UP | GPIO_ACTIVE_HIGH);
237
237
} else if (pinMode == INPUT_PULLDOWN) { // input with internal pull-down
238
- gpio_pin_configure_dt (&arduino_pins[ pinNumber] ,
238
+ global_gpio_pin_configure ( pinNumber,
239
239
GPIO_INPUT | GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH);
240
240
} else if (pinMode == OUTPUT) { // output mode
241
- gpio_pin_configure_dt (&arduino_pins[ pinNumber] ,
241
+ global_gpio_pin_configure ( pinNumber,
242
242
GPIO_OUTPUT_LOW | GPIO_ACTIVE_HIGH);
243
243
}
244
244
}
245
245
246
246
void digitalWrite (pin_size_t pinNumber, PinStatus status) {
247
- gpio_pin_set_dt (&arduino_pins[ pinNumber] , status);
247
+ gpio_pin_set ( local_gpio_port ( pinNumber), local_gpio_pin (pinNumber) , status);
248
248
}
249
249
250
250
PinStatus digitalRead (pin_size_t pinNumber) {
251
- return (gpio_pin_get_dt (&arduino_pins[ pinNumber] ) == 1 ) ? HIGH : LOW;
251
+ return (gpio_pin_get ( local_gpio_port ( pinNumber), local_gpio_pin (pinNumber) ) == 1 ) ? HIGH : LOW;
252
252
}
253
253
254
254
struct pin_timer {
@@ -415,16 +415,16 @@ void attachInterrupt(pin_size_t pinNumber, voidFuncPtr callback, PinStatus pinSt
415
415
return ;
416
416
}
417
417
418
- pcb = find_gpio_port_callback (arduino_pins[ pinNumber]. port );
418
+ pcb = find_gpio_port_callback (local_gpio_port ( pinNumber) );
419
419
__ASSERT (pcb != nullptr , " gpio_port_callback not found" );
420
420
421
- pcb->pins |= BIT (arduino_pins[ pinNumber]. pin );
421
+ pcb->pins |= BIT (local_gpio_pin ( pinNumber) );
422
422
setInterruptHandler (pinNumber, callback);
423
423
enableInterrupt (pinNumber);
424
424
425
- gpio_pin_interrupt_configure (arduino_pins[ pinNumber]. port , arduino_pins[ pinNumber]. pin , intmode);
425
+ gpio_pin_interrupt_configure (local_gpio_port ( pinNumber), local_gpio_pin ( pinNumber) , intmode);
426
426
gpio_init_callback (&pcb->callback , handleGpioCallback, pcb->pins );
427
- gpio_add_callback (arduino_pins[ pinNumber]. port , &pcb->callback );
427
+ gpio_add_callback (local_gpio_port ( pinNumber) , &pcb->callback );
428
428
}
429
429
430
430
void detachInterrupt (pin_size_t pinNumber)
@@ -496,18 +496,18 @@ unsigned long pulseIn(pin_size_t pinNumber, uint8_t state, unsigned long timeout
496
496
#endif // CONFIG_GPIO_GET_DIRECTION
497
497
498
498
void enableInterrupt (pin_size_t pinNumber) {
499
- struct gpio_port_callback *pcb = find_gpio_port_callback (arduino_pins[ pinNumber]. port );
499
+ struct gpio_port_callback *pcb = find_gpio_port_callback (local_gpio_port ( pinNumber) );
500
500
501
501
if (pcb) {
502
- pcb->handlers [BIT (arduino_pins[ pinNumber]. pin )].enabled = true ;
502
+ pcb->handlers [BIT (local_gpio_pin ( pinNumber) )].enabled = true ;
503
503
}
504
504
}
505
505
506
506
void disableInterrupt (pin_size_t pinNumber) {
507
- struct gpio_port_callback *pcb = find_gpio_port_callback (arduino_pins[ pinNumber]. port );
507
+ struct gpio_port_callback *pcb = find_gpio_port_callback (local_gpio_port ( pinNumber) );
508
508
509
509
if (pcb) {
510
- pcb->handlers [BIT (arduino_pins[ pinNumber]. pin )].enabled = false ;
510
+ pcb->handlers [BIT (local_gpio_pin ( pinNumber) )].enabled = false ;
511
511
}
512
512
}
513
513
@@ -527,7 +527,7 @@ void noInterrupts(void) {
527
527
528
528
int digitalPinToInterrupt (pin_size_t pin) {
529
529
struct gpio_port_callback *pcb =
530
- find_gpio_port_callback (arduino_pins[ pin]. port );
530
+ find_gpio_port_callback (local_gpio_port ( pin) );
531
531
532
532
return (pcb) ? pin : -1 ;
533
533
}
@@ -537,5 +537,6 @@ int digitalPinToInterrupt(pin_size_t pin) {
537
537
#define PRINT_PIN (p, _ ) printf(STRINGIFY(Dx(p)) " :%d:%p:%d - " STRINGIFY(DXx(p)) " :%d:%p:%d\n " , Dx(p), arduino_pins[Dx(p)].port, arduino_pins[Dx(p)].pin, DXx(p), local_gpio_port(DXx(p)), local_gpio_pin(DXx(p)));
538
538
539
539
void debug_dump (void ) {
540
+ int x = LED_BUILTIN;
540
541
LISTIFY (DT_PROP_LEN (DT_PATH (zephyr_user), digital_pin_gpios), PRINT_PIN, ());
541
542
}
0 commit comments