Procedure

Open Lab03

Close any open projects by right clicking on the project name and selecting “Close”

Click the Open Project icon

Browse to C:\MTT\TLS0101\Lab03.X and select Open Project

Double click on Lab03.c under Source Files to open the C file in the editor window

Notice the variable delayVal. This variable is defined with an initial value of decimal 10. This variable, delayVal, is used to control the execution time of the delay() function. We will alter this variable in the latter part of Lab03.

2

Verify the Hardware Tool

​

If you wish to run this lab on hardware this is where you need to select your debugger/programmer.

Verify the Hardware Tool assigned to this project is the Proteus VSM Viewer (if you don't have hardware) or REAL ICE/ICD3 (if you have hardware).

Right click on Lab03 from the project list

Select Properties

Under the Conf:[default] section ensure the Proteus VSM Viewer or REAL ICE / ICD3 has been selected.

Click OK

3

Verify the debug session will start at the beginning of main()

Debug Project

Click Debug Project icon to build a debug image and download it to the VSM Viewer / REAL ICE / ICD3. You will notice the project builds, and then starts the VSM View or programs the Explorer16 processor through the REAL ICE / ICD3

Above we see the editor window showing Lab03.c after simulation ready to continue at the beginning of main().

5

Set Breakpoints

Set breakpoints on the two LATA assignment statements within the while(1) loop

Click on the left margin of lines of code containing LATA=0xAA; and LATA = 0x55;

Click the Continue icon to run the program until the first breakpoint is encountered

You should notice the green bar on the line with the breakpoint set

​

Skid on breakpoint. When running on hardware, the PIC MCU may execute the instruction at the breakpoint and THEN stop. Under software simulation, the CPU halts BEFORE the instruction is executed. Stopping after executing the breakpoint instruction is referred to as a Skid.

If the green bar is located below the red bar you are observing a “skid”. The red bar indicates where the break point was set and the green bar is where the processor stopped. Depending on the particular version of MPLAB® X IDE and the debugger, you will need to take this skid onto consideration when debugging on hardware.

6

Operation of Program

Click the Continue icon to move the program to the next breakpoint. Each time the PIC MCU stops at a break point, observe the LEDs on the VSM implementation of the Explorer16 change. Repeat this step several times until you are familiar with the operation of this program.

7

Remove Breakpoints from the Code

From the Window menu select Debugging, then Breakpoints

Right click in the Breakpoint Window and select Delete All

Click the Continue icon to run the project code on hardware at full speed

Do you see the LEDs blink or do they appear to stay on constantly? At question is the speed of the processor. The clock rate of the PIC MCU is such that the delay() function executes so quickly the human eye cannot easily notice the toggling of the LEDs. To adjust the speed we will manually adjust the variable delayVal using MPLAB X IDE.

Pause the Simulation by clicking the Pause icon

8

Adding Variables to the Watches Window

Open the Watch Window (if not already open) by selecting it from the Window menu. Watches from previous labs might show up (right-click and select Delete All)

Within the Watch Window right click and select New Watch…

Highlight the “Global Symbols” radial button

Select the variable delayVal from the menu

Click “OK”

​

If LATA is not already in the Watch window repeat the above step to add this SFR to the list of data points to watch

​

You may notice delayVal is displayed with a value of “0x00AA” and not “10” as written in the source code. The Watch window will default to display values in HEX while the value in the code was decimal. To synchronize the value in the Watch window with what radix we coded we will change the display on the Watch Window

9

Changing the Radix of the Watches Window

Within the watch Window Right Click on ‘delayVal’

Move the mouse over Display Value As and select Decimal

Highlight the Value displayed for delayVal (in this case 10)

Change the number to 2048 then press Enter

Click Continue and notice slower LED blinking. Pause the simulation by clicking Pause

10

Saving Changes

To save the changes we need to enter the new delayVal into the source code

Change the line of coding reading delayVal = 10; to delayVal = 2048;

Before we rebuild and then run the code we will manually control the SFRs on the PIC MCU. Directly controlling the contents of SFRs can be very useful during the debugging process. For today’s lab we will manually alter the LATA SFR to allow a different pattern to be displayed on the LEDS.

In the Watch Window enter 0x003C

Notice an immediate change in SFR value as displayed on the LEDS

End the debug session

11

Make and Program Device

Build and run a production version of the code by Clicking the Make and Program Device icon. This will remove the debug executive and build a version of the code which will run without the prompting from a debugger. Please note this step will only work if you are using a programmer debugger such as the PICkitTM3, MPLAB® ICD3, or MPLAB® REAL ICE.

Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.

Click here to edit contents of this page.

Click here to toggle editing of individual sections of the page (if possible). Watch headings for an "edit" link when available.

Append content without editing the whole page source.

Check out how this page has evolved in the past.

If you want to discuss contents of this page - this is the easiest way to do it.

View and manage file attachments for this page.

A few useful tools to manage this Site.

See pages that link to and include this page.

Change the name (also URL address, possibly the category) of the page.