diff --git a/examples/LinkMobile_demo/src/main.cpp b/examples/LinkMobile_demo/src/main.cpp index 7c98439..c2b0f7b 100644 --- a/examples/LinkMobile_demo/src/main.cpp +++ b/examples/LinkMobile_demo/src/main.cpp @@ -26,8 +26,6 @@ void init() { int main() { init(); - bool firstTime = true; - start: // Options log("LinkMobile_demo (v7.0.0)\n\n" @@ -37,18 +35,14 @@ start: // (1) Create a LinkMobile instance linkMobile = new LinkMobile(); - if (firstTime) { - // (2) Add the required interrupt service routines - interrupt_init(); - interrupt_set_handler(INTR_VBLANK, LINK_MOBILE_ISR_VBLANK); - interrupt_enable(INTR_VBLANK); - interrupt_set_handler(INTR_SERIAL, LINK_MOBILE_ISR_SERIAL); - interrupt_enable(INTR_SERIAL); - interrupt_set_handler(INTR_TIMER3, LINK_MOBILE_ISR_TIMER); - interrupt_enable(INTR_TIMER3); - - firstTime = false; - } + // (2) Add the required interrupt service routines + interrupt_init(); + interrupt_set_handler(INTR_VBLANK, LINK_MOBILE_ISR_VBLANK); + interrupt_enable(INTR_VBLANK); + interrupt_set_handler(INTR_SERIAL, LINK_MOBILE_ISR_SERIAL); + interrupt_enable(INTR_SERIAL); + interrupt_set_handler(INTR_TIMER3, LINK_MOBILE_ISR_TIMER); + interrupt_enable(INTR_TIMER3); // (3) Initialize the library linkMobile->activate(); @@ -67,6 +61,9 @@ start: // SELECT = back if (keys & KEY_SELECT) { linkMobile->deactivate(); + interrupt_disable(INTR_VBLANK); + interrupt_disable(INTR_SERIAL); + interrupt_disable(INTR_TIMER3); delete linkMobile; linkMobile = NULL; goto start; diff --git a/examples/LinkWireless_demo/src/main.cpp b/examples/LinkWireless_demo/src/main.cpp index 5224146..0f3b74a 100644 --- a/examples/LinkWireless_demo/src/main.cpp +++ b/examples/LinkWireless_demo/src/main.cpp @@ -43,8 +43,6 @@ void init() { int main() { init(); - bool firstTime = true; - start: // Options log("LinkWireless_demo (v7.0.0)\n\n\n\n" @@ -67,22 +65,18 @@ start: LINK_WIRELESS_DEFAULT_SEND_TIMER_ID, asyncACK ? 0 : -1); // linkWireless->debug = [](std::string str) { log(str); }; - if (firstTime) { - // (2) Add the required interrupt service routines - interrupt_init(); - interrupt_set_handler(INTR_VBLANK, LINK_WIRELESS_ISR_VBLANK); - interrupt_enable(INTR_VBLANK); - interrupt_set_handler(INTR_SERIAL, LINK_WIRELESS_ISR_SERIAL); - interrupt_enable(INTR_SERIAL); - interrupt_set_handler(INTR_TIMER3, LINK_WIRELESS_ISR_TIMER); - interrupt_enable(INTR_TIMER3); + // (2) Add the required interrupt service routines + interrupt_init(); + interrupt_set_handler(INTR_VBLANK, LINK_WIRELESS_ISR_VBLANK); + interrupt_enable(INTR_VBLANK); + interrupt_set_handler(INTR_SERIAL, LINK_WIRELESS_ISR_SERIAL); + interrupt_enable(INTR_SERIAL); + interrupt_set_handler(INTR_TIMER3, LINK_WIRELESS_ISR_TIMER); + interrupt_enable(INTR_TIMER3); - // (only required when using async ACK) - interrupt_set_handler(INTR_TIMER0, LINK_WIRELESS_ISR_ACK_TIMER); - interrupt_enable(INTR_TIMER0); - - firstTime = false; - } + // (only required when using async ACK) + interrupt_set_handler(INTR_TIMER0, LINK_WIRELESS_ISR_ACK_TIMER); + interrupt_enable(INTR_TIMER0); // (3) Initialize the library linkWireless->activate(); @@ -106,6 +100,10 @@ start: // SELECT = back if (keys & KEY_SELECT) { linkWireless->deactivate(); + interrupt_disable(INTR_VBLANK); + interrupt_disable(INTR_SERIAL); + interrupt_disable(INTR_TIMER3); + interrupt_disable(INTR_TIMER0); delete linkWireless; linkWireless = NULL; goto start; diff --git a/lib/LinkMobile.hpp b/lib/LinkMobile.hpp index 860a7e7..aba9d70 100644 --- a/lib/LinkMobile.hpp +++ b/lib/LinkMobile.hpp @@ -943,7 +943,5 @@ inline void LINK_MOBILE_ISR_TIMER() { #endif // LINK_MOBILE_H -// TODO: Stop keeps running commands and changing state // TODO: Error screen // TODO: Keep adapter alive with Wait For Telephone Call -// TODO: Write text fast