The Timer0 module is an 8-bit timer/counter within most PIC® devices. The Timer0 can also trigger an interrupt when it overflows. This project creates a blinking Light Emitting Diode (LED) based on a Timer0 Interrupt Delay.
Step by Step Instructions
The MPLAB® XC8 Compiler has a built-in delay function that can be handy. This project demonstrates how to use it with MPLAB Code Configurator (MCC) macros to control output and blink an LED.
The project uses:
- PIC16F18875
- HPC Curiosity Board
- MPLAB X IDE
- MCC plug-in
- MPLAB XC8 Compiler
To follow along with these steps, MPLAB X should be open and the HPC Curiosity Board connected to the computer through a USB cable.
1
Create a new standalone project in MPLAB X for a PIC16F18875.
If this is your first time creating an MPLAB X project, please visit the "Create a Standalone Project" page to follow a step-by-step instruction on how to do this.
5
Close the Pin Manager and then click on the Pin Module under Project Resources.
The center screen should show RA4 listed on the I/O chart. Click on the Output box to make the pin an output (if not checked) and make sure Analog and WPU are not checked (click on them to uncheck them). Change the Custom Name column to say "D2_LED".
6
The System needs to be set up next. Click on the System Module name under Project Resources.
In this section, the oscillator settings and the configuration settings are selected.
Oscillator
- Select the HFINTOSC from the Oscillator Select drop-down menu.
- Select the 4_MHz selection from the HF Internal Clock drop-down menu.
- Select Clock Divider value of 4.
This will enable the internal 1 MHz internal oscillator as the system clock.
Also, make sure the Low-voltage Programming Enable mode is selected at the bottom of the System Module screen.
9
The main.c file is where the application code is added. A list of I/O controlling macros is generated by MCC and placed in the pin_manager.h file. The MPLAB XC8 compiler also has a built-in delay in the format: __delay_ms(delaytime). The delaytime is a value indicating how many milliseconds to delay.
Within the while (1) brackets in main.c, there is a comment that states //Add your application code . Place the following code under that comment:
while (1)
{
// Add your application code
D2_LED_Toggle();
__delay_ms(200);
}
11
Make sure your project has the Curiosity Board selected and the USB cable is connected to the board.
Click on Make and Program Device Main Project. This will build the project again and launch the programmer. In the Output window, you should see a series of messages, and if successful, it will end with a Programming/Verify complete message. Additionally, the D2 LED connected to RA4 will be blinking on the HPC Curiosity Board.
Connecting to Starter Kit on Board...
Currently loaded firmware on Starter Kit on Board
Firmware Suite Version.....01.54.00
Firmware type..............Enhanced Midrange
Target voltage detected
Target device PIC16F18875 found.
Device Revision ID = 2002
Device Erased...
Programming...
The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x7ff
configuration memory
**Programming/Verify complete**
The MPLAB XC8 Compiler has a built-in delay function that can be handy. This project demonstrates how to use it with MCC macros to control an output and blink an LED.
If it is the first time the programmer is connected to the board, the programming tool may need to download the proper operating firmware for the exact device. You may see a series of processes if this occurs. This should only happen once.
Downloading Firmware…
Downloading bootloader
Bootloader download complete
Programming download…
Downloading RS…
RS download complete
Programming download…
Downloading AP…
AP download complete
Programming download…
Firmware Suite Version…..01.34.11
Firmware type…………..Enhanced Midrange
Download
If you have any problems with your project, the completed MPLAB X project file can be downloaded from the link below:
File | Download |
Installation
Instructions |
||
---|---|---|---|---|
Windows | Linux | Mac OSX | ||
Project 7 Files
|
| | | |