Professional Documents
Culture Documents
Ch13 Switching To C Slides
Ch13 Switching To C Slides
Image Courtesy of
Recording Connection of Canada
13.1 C BASICS
• Program file:
main.asm → main.c
• Header file:
msp430.h → #include<msp430.h>
13.1 C BASICS
• Block comment – begins with /* and ends with */
• Anything between will be commented
• Can span multiple lines.
13.1 C BASICS
• Items that do not need to be explicitly coded:
• Reset vector definition
www.youtube.com/c/DigitalLogicProgramming_LaMeres
• Infinite loop:
jmp main → while(1)
VARIABLE STORAGE
• The compiler will automatically decide the most efficient place to
store a variable.
OPTIMIZATION!!!
• Compiler will attempt to optimize the program by default – aka the
compiler recognizes code that doesn’t access the outside of the MCU
and can omit it.
OPTIMIZATION!!!
• Steps to turn OFF optimization:
• Use the pull-down menu to select: Project → Properties.
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
Step 4: Save and debug your program. Set a breakpoint before the int
count = 0; line. Run to the breakpoint.
Step 5: Click on the “Variables” tab next to the Register Viewer tab. This
will allow you to see the values of any variables you declared.
www.youtube.com/c/DigitalLogicProgramming_LaMeres
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
Step 4: Save and debug your program. Set a breakpoint before the int
i = 0; line. Run to the breakpoint.
www.youtube.com/c/DigitalLogicProgramming_LaMeres
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
Step 4: Save and debug your program. Set a breakpoint before the
for() loop. Run to the breakpoint.
Step 5: Step your program and observe “i” and “it_is_TWO” in the
Variable Viewer.
www.youtube.com/c/DigitalLogicProgramming_LaMeres
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
Step 4: Save and debug your program. Set a breakpoint before the
for() loop. Run to the breakpoint.
www.youtube.com/c/DigitalLogicProgramming_LaMeres
www.youtube.com/c/DigitalLogicProgramming_LaMeres
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
Step 4: Save and debug your program. Set a breakpoint before the
while() loop. Run to the breakpoint.
Step 5: Step your program and observe the variables in the Variable
Viewer.
www.youtube.com/c/DigitalLogicProgramming_LaMeres
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
www.youtube.com/c/DigitalLogicProgramming_LaMeres
• We can clear out all other bits in the variable using a bitwise AND
with 0b00000010.
• Once this is done, SW1 can be used to check if the button was
pressed.
Image Courtesy of
Recording Connection of Canada
www.youtube.com/c/DigitalLogicProgramming_LaMeres
13.3 INTERRUPTS IN C
• Steps to use a maskable port interrupt:
• Configure the peripheral for the desired functionality.
Image Courtesy of
Recording Connection of Canada
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS IN C
• Steps to use a maskable port interrupt (cont.):
• Write ISR with an address label to mark starting location and the
reti instruction to denote its end. Remember that the ISR must
clear the peripherals local interrupt flag (PxIFG) so that when
the ISR completes, the peripheral doesn’t inadvertently trigger
another IRQ.
• Initialize the vector address for the peripheral using the ISR
address label and directives.
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS IN C
• __enable_interrupt() – sets the GIE bit in the status register.
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS IN C
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS IN C
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS
EMBEDDED SYSTEMS DESIGN
www.youtube.com/c/DigitalLogicProgramming_LaMeres
13.4 TIMERS IN C
• Program the timer system:
• Setting up the timer.
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.4 TIMERS IN
EMBEDDED SYSTEMS DESIGN
www.youtube.com/c/DigitalLogicProgramming_LaMeres
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.4 TIMERS IN
EMBEDDED SYSTEMS DESIGN
www.youtube.com/c/DigitalLogicProgramming_LaMeres
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.4 TIMERS IN
EMBEDDED SYSTEMS DESIGN
www.youtube.com/c/DigitalLogicProgramming_LaMeres
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.4 TIMERS IN
EMBEDDED SYSTEMS DESIGN
www.youtube.com/c/DigitalLogicProgramming_LaMeres
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.4 TIMERS IN
EMBEDDED SYSTEMS DESIGN
www.youtube.com/c/DigitalLogicProgramming_LaMeres
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
Period
Duty Cycle
13.3 INTERRUPTS
CH. 13: SWITCHING TO THE C LANGUAGE
Step 2: Type in the following code into the main.c file after the statement
to stop the watchdog timer.
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
13.4 TIMERS IN
CH. 13: SWITCHING TO THE C LANGUAGE
Step 3: Debug your program and run it. You will see LED1 flash briefly
every 1 second.
13.4 TIMERS IN
EMBEDDED SYSTEMS DESIGN
www.youtube.com/c/DigitalLogicProgramming_LaMeres
13.3 INTERRUPTS
EMBEDDED SYSTEMS DESIGN
www.youtube.com/c/DigitalLogicProgramming_LaMeres