@@ -70,7 +70,7 @@ int isr_index = 0;
7070 dbg_info (" installing isr number: %d of %d with name: %s\n " , \
7171 isr_index + 1 , ALL_ISRS, isr_##number); \
7272 if (isr_index < ALL_ISRS) { \
73- ISREntry *p = &ISRs[isr_index]; \
73+ ISREntry *p = &ISRs[isr_index++]; \
7474 p->pin = number; \
7575 p->ISR_callback = &(isr_##number); \
7676 } else { \
@@ -79,8 +79,10 @@ int isr_index = 0;
7979 }
8080
8181/* Private macro to create an ISR for a specific pin*/
82+ #define topic (pin ) " interrupt_" #pin
83+
8284#define def_isr (pin ) \
83- void isr_##pin() { CallbackHandler::push_event (" interrupt_## pin" , " " , 0 ); }
85+ void isr_##pin() { CallbackHandler::push_event (# pin, " " , 0 ); }
8486
8587/* Common GPIO pins on ESP32 devices:*/
8688def_isr (1 );
@@ -110,10 +112,11 @@ def_isr(36);
110112def_isr (39 );
111113
112114int resolve_isr (int pin) {
113- debug (" Resolve ISR (%d) for %s \n " , ALL_ISRS, pin);
115+ debug (" Resolve ISR (%d) for %i \n " , ALL_ISRS, pin);
114116
115117 for (int i = 0 ; i < ALL_ISRS; i++) {
116118 auto &isr = ISRs[i];
119+ debug (" Checking entry %i of %i: pin = %i \n " , i, ALL_ISRS, isr.pin );
117120 if (pin == isr.pin ) {
118121 debug (" FOUND ISR\n " );
119122 return i;
@@ -887,11 +890,38 @@ int32_t http_post_request(Module *m, const String url, const String body,
887890}
888891
889892// ------------------------------------------------------
890- // Installing all the primitives
893+ // Installing all the primitives & ISRs
891894// ------------------------------------------------------
895+ void install_isrs () {
896+ install_isr (1 );
897+ install_isr (2 );
898+ install_isr (3 );
899+ install_isr (4 );
900+ install_isr (5 );
901+ install_isr (12 );
902+ install_isr (13 );
903+ install_isr (14 );
904+ install_isr (15 );
905+ install_isr (16 );
906+ install_isr (17 );
907+ install_isr (18 );
908+ install_isr (19 );
909+ install_isr (21 );
910+ install_isr (22 );
911+ install_isr (23 );
912+ install_isr (25 );
913+ install_isr (26 );
914+ install_isr (27 );
915+ install_isr (32 );
916+ install_isr (33 );
917+ install_isr (34 );
918+ install_isr (35 );
919+ install_isr (36 );
920+ install_isr (39 );
921+ }
922+
892923void install_primitives () {
893924 dbg_info (" INSTALLING PRIMITIVES\n " );
894- dbg_info (" INSTALLING ARDUINO\n " );
895925 install_primitive (abort);
896926 install_primitive (millis);
897927 install_primitive (micros);
@@ -939,34 +969,9 @@ void install_primitives() {
939969 install_primitive (chip_analog_write);
940970 install_primitive (chip_ledc_setup);
941971 install_primitive (chip_ledc_attach_pin);
942- }
943972
944- void install_isrs () {
945- install_isr (1 );
946- install_isr (2 );
947- install_isr (3 );
948- install_isr (4 );
949- install_isr (5 );
950- install_isr (12 );
951- install_isr (13 );
952- install_isr (14 );
953- install_isr (15 );
954- install_isr (16 );
955- install_isr (17 );
956- install_isr (18 );
957- install_isr (19 );
958- install_isr (21 );
959- install_isr (22 );
960- install_isr (23 );
961- install_isr (25 );
962- install_isr (26 );
963- install_isr (27 );
964- install_isr (32 );
965- install_isr (33 );
966- install_isr (34 );
967- install_isr (35 );
968- install_isr (36 );
969- install_isr (39 );
973+ dbg_info (" INSTALLING ISRs\n " );
974+ install_isrs ();
970975}
971976
972977// ------------------------------------------------------
0 commit comments