You are on page 1of 2

Connexions module: m13653

4.4 - Lab 4: Timers and Interrupts

Naren Anand
Based on Lab 6: Timers on the MSP430 by adrian valenzuela CJ Ganier
This work is produced by The Connexions Project and licensed under the Creative Commons Attribution License

Abstract
In this lab, we will cover various timing options for the ez430 and their implementation with interrupts.

In this lab, we will cover the timing options for the ez430. The rst part explains the clocking system of the processor and the options it allows while the second part covers the timers and timer interrupts available on the ez430. Each of these sections is strongly related to real time programming, but that topic will be dealt with separately in another lab. In general, a real-time application is one which responds to its inputs as fast as they happen. The microprocessor is generally expected to take less time to handle an interrupt or stimulus than the time before the next event will happen. The timer system is broken into two primary parts on the ez430 Timer A and the Watchdog timer.
Exercise 1

Refer to Chapter 8: Timer_A User's Guide to get a detailed description of all the options in Timer A. Basically, setting up the timers requires that you dene a source for the timer and to specify a direction for the count. It may also be helpful to clear the timer register before you begin to guarantee and accurate count from the rst instance. Set up Timer A in Continuous Mode and sourced from SMCLK. Set TACCR0 and TACCR1 to have two dierent values. Output TA0 and TA1 from Pins 3 and 4 (o of P1.1 and P1.2) of the board so that you may directly observe the output of Timer A. Using two dierent channels of the Oscilloscope try to recreate parts of Figure 8-13. Output Example- Timer in Continuous Mode. On Channel 1 show Output Mode 4: Toggle and on Channel 2 show Output Mode 6: Toggle/Set. Vary the TACCTLx in order to get as close to the orginal gure as possible. Take a screenshot of the scope and include it in your lab report.
Exercise 2

Timer A

Set up the timers to re interrupts to calculate time intervals and redo the SOS problem from Lab 1 using the timer to simulate the "dot" and "dash" time intervals. There should be NO
1

Timer

Version

http://cnx.org/content/m11996/1.6/

1.2: Jun 7, 2006 11:03 am GMT-5

1 "1.5 - Lab 1: C and Macros with Texas Instruments' ez430" <http://cnx.org/content/m13625/latest/>

http://creativecommons.org/licenses/by/2.0/

http://cnx.org/content/m13653/1.2/

Connexions module: m13653

COUNTING LOOPS

in your program, and your program should be entirely interrupt driven. It is possible to have each Capture Control Register to re an interrupt once it reaches its max value. Explain how you setup Timer A to simulate each time interval.
Exercise 3 Duty Cycle

We have discussed earlier that the Duty Cycle is related to the width of a pulse. If we trigger an LED with a relatively high frequency square wave, it will appear to be lit constantly even though it is actually switching on and o quickly. As we vary the duty cycle of our trigger signal, the LED may appear to get dimmer or brighter depending on which way we vary it. Set up the timer to toggle the LED. Without changing the frequency of your timing pulse, change the duty cycle so that the LED appears to fade in and out. The time it takes to go from completely o to max brightness shouldn't take more than a second, then it should repeat. Once again, there should be no counting loops in your program, and you can use Timer A in any way you wish. Once you get a single light to fade in and out, create another program with a function to set the LED at a certian brightness level when given atleast a 12 bit integer. For example, if I were to call LED_level(0x111), the LED should appear very dim; if I were to call LED_level(0xFA0), the LED should appear very bright. It may be helpful to have an extra function that initializes the Timer settings so that the use of this application is self contained. In the future, we will use this function to provide visual feedback when using other components.

http://cnx.org/content/m13653/1.2/

You might also like