- What this example do?
- How I must configure my ORbit16™ to work with this example?
- Where I can learn more about this?
- Download this example!
What this example do?
This example will invert led L2 status on SW2 pressing. The button is checked using interrupts: SW2 is located on RB7/INT0 and INT0 has an interrupt source on status change (we can select falling edge or rising edge).
Since RB7 is pulled high by a resistor and is pulled down on pushing it, we are going to set the interrupt to be fired on falling edge. On the first button press a counter will start. Counter is mantained by Timer1 interrupt. After counter reaches 0 value, the button is checked another time to confirm the button press and then a flag is raised. Flag is then checked in the main.
This routine is very efficient: the led will not invert his status continuously if we leave the button pushed.
How I must configure my ORbit16™ to work with this example?
Nothing to configure. Only remember to set the jumper for USB in device mode in order to make bootloader work.
Where I can learn more about this?
- The PIC24F family reference manual, Section 8 – Interrupts
- dsPIC30F_dsPIC33F_PIC24H_IO_Library_Help.htm (english language)
This is an HTML file you’ve got with MPLAB C30 installation. Usually this document is located in the following folder:
C:\Program files\Microchip\MPLAB C30\docs\periph_lib
- Reading document this will give you extra skills in the usage of interrupts on INTx and CNx I/Os.Note: this documents refers to PIC24H and dsPIC series, so some parameters are not usable with the PIC24F