/////////////////////////////////// // // program_7 project // // created 8/12/21 by tj // rev 0 // /////////////////////////////////// // // Program to practice with interrupts and Ticker // // inputs: output of ticker isr (D4) // outputs: D6 - square wave at T_WAIT/2 period // /////////////////////////////////// #include "mbed.h" #include // only needed when printing #define T_OUT 500000us // in us - 0.5sec #define T_PRINT 100000 // in us - 0.1sec // function prototypes void ticker_isr(void); void int_isr(void); // Global HARDWARE Objects // Create a Ticker object Ticker my_ticker; // Create an interruptIn object InterruptIn int_in(D5); // create the output from the ticker DigitalOut ticker_out_pin(D4); // create output from interrupt DigitalOut int_out_pin(D6); int main(void){ setbuf(stdout, NULL); // disable buffering when printing // splash printf("\n\nprogram_7\n"); printf("Using Mbed OS version %d.%d.%d\n\n", MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION); printf("Welcome to my structure program\n\n"); // setup interrupts my_ticker.attach(&ticker_isr, T_OUT); int_in.fall(&int_isr); // initialize outputs ticker_out_pin.write(0); while(1){ printf("%i\n", int_out_pin.read()); wait_us(T_PRINT); }// end while return 0; }// end main void ticker_isr(void){ ticker_out_pin.write(!ticker_out_pin.read()); return; }// enf ticker_isr void int_isr(void){ int_out_pin.write(!int_out_pin.read()); return; }// end int_isr