<< Chapter < Page Chapter >> Page >

- Interrupts.

Software application organization

The software structure allows various tasks to be performed simultaneously. The routine main() is responsible for configuring all the resources used by the application. Once started, the application enables all the interrupts and waits for an interrupt request.

There are two routines that separately service the two possible interrupts. The routine TimerA1_ISR() services interrupts required by the Timer_A overflow and by the TACCR1 capture unit. For every interrupt caused by a TACCR1 capture, the value collected in the TACCR1 register is stored in T1 , if it is the first low-to-high transition, or stored in T2 if it is the second low-to-high transition. This sequence is controlled by the variable capture. The variable flag is used to flag the measurement process. This process occurs between the capture of the first low-to-high transition and the second transition. The counting of clock pulses is done by Timer_A, in the time interval between the T1 and T2 acquisition, assigned to the variable T . The process is synchronized when Timer_A overflows, restarting the measurement process. The LCD is refreshed once every 0.5 seconds with the latest measured frequency value, using the control variable control tick that corresponds to 0.5 seconds.

The routine basic_timer_ISR() services the interrupt produced by Basic Timer1 once every second. This routine begins by switching the state of LED1 and LED2. In addition, it updates the Timer_B counting period. The variable read_data allows the counting period to be changed.

System configuration

Basic timer1

Basic Timer1 generates an interrupt once every second. Use the two counters in series, where the BTCNT2 counter input is selected as the BTCNT1 counter output divided by 256. The BTCNT1 counter input is the ACLK clock signal with a frequency of 32.768 kHz.

If BTCNT2 counter selected output is divided by 128, what is the time period associated with the Basic Timer1 interrupt? _________

The values written to the configuration registers are:

BTCTL = BTDIV | BT_fCLK2_DIV128; // (ACLK/256)/128 IE2 |= BTIE; // Enable BT interrupt with 1 sec period

Timer_b

The TBCCR4 compare unit is used to generate the PWM signal. The set/reset compare mode is used.

The values written to the configuration registers are:

TBCTL = TBSSEL_2 | CNTL_0 | TBCLGRP_0 |MC_1 | ID_0; // SMCLK, continuous modeTBCCTL4 = OUTMOD_3; // CCR4 output mode 3 (set/reset)

The TB4 PWM output signal has a frequency X, with a 50% duty-cycle. The SMCLK clock signal is used as input of Timer_B.

The values written to the configuration registers are:

TBCCR0 = 39977;// Output 200 Hz signal with 50% duty cycle TBCCR4 = TBCCR0/2;

What the largest and lowest generated frequency?

Maximum frequency value: ____________

Minimum frequency value: _____________

Timer_a

Timer_A is sourced by the SMCLK clock signal. It counts to the value 0xFFFF, in continuous mode. An interrupt is generated when the TAR counter overflows. What is the value to write to its configuration register?

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Teaching and classroom laboratories based on the “ez430” and "experimenter's board" msp430 microcontroller platforms and code composer essentials. OpenStax CNX. May 19, 2009 Download for free at http://cnx.org/content/col10706/1.3
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Teaching and classroom laboratories based on the “ez430” and "experimenter's board" msp430 microcontroller platforms and code composer essentials' conversation and receive update notifications?

Ask