The PIC18F47Q10 features features timers with Hardware Limit Timer (HLT) and a 10-bit ADC with computation (ADCC) module. In this demo, uses TMR4 peripheral as a HLT in order to generate an interrupt and stop TMR2 that also stops the ADCC auto-conversion.
- TB3285 - Getting Started with Timers/Counters on PIC18
- PIC18F47Q10 Product Family Page
- PIC18F47Q10 datasheet
- TB3261 - PIC1000: Getting Started with Writing C-Code for PIC16 and PIC18
- MPLAB® X IDE 5.30 or newer (microchip.com/mplab/mplab-x-ide)
- MPLAB® XC8 2.10 or newer compiler (microchip.com/mplab/compilers)
- PIC18F47Q10 Curiosity Nano (DM182029)
- Curiosity Nano Base for Click Boards™ (AC164162)
- POT click board™ (MIKROE-3402)
- The PIC18F47Q10 Curiosity Nano Development Board (DM182029) is used as the test platform.
- Insert it into the Curiosity Nano Base for Click Boards™ (AC164162) along with the POT click board™ (MIKROE-3402).
The following pin configurations must be made for this project:
Pin | Configuration |
---|---|
RA0 | Analog input for ADCC |
RE0 | Digital output (LED0) |
RC7 | Digital input as HLT trigger |
- Build demo firmware, make and program the generated code onto the PIC18F47Q10 Curiosity Nano.
- Plug the POT click board™ into the mikroBUS™ slot (1) of the Curiosity Nano Base board.
- Run the code, LED0 will blink with
Timer2Period
period (100ms). - LED0 will blink if Potentiometer value is below
DesiredThreshold
, and if aboveDesiredThreshold
, LED0 will be ON. - If the ADCC read value is above
MaxThreshold
and RC7 pin is pulled to GND for more thanTimer4Period
(500ms), TMR4 will stop TMR2. - LED0 will blink with 500ms period as long as RC7 is tied to GND.
This project showcases how easy it is to use the TMR4 of PIC18F47Q10 as HLT to generate an interrupt (like a WDT without reset).