Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

#include #define RedLED BIT0 #define RedLEDToggle (P1OUT ^= RedLED) /** * main.c */ void main(void) { WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer

#include

#define RedLED BIT0

#define RedLEDToggle (P1OUT ^= RedLED)

/**

* main.c

*/

void main(void)

{

WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer

P1DIR = RedLED;

P1OUT = RedLED;

TACTL = TASSEL_2|ID_3|MC_3|TAIE;

TACCR0 = 62500;

_enable_interrupts();

LPM1;// enter low power mode

}

#pragma vector = TIMER0_A1_VECTOR __interrupt void Timer_A(void)

{

switch (TAIV)

{

case 0x02: break;

case 0x04: break;

case 0x0A: RedLEDToggle;

break;

}

}

Problem 1: Modify Example 10.9 using the timer Timer_A to toggle two LEDs in periodic time intervals of

1 second

5 seconds

30 seconds

You need to explain in detail the setting for Timer_A and the code in the interrupt service routine.

Problem 2: Modify the program written in Problem 1 to accept port interrupt from a switch. Initially, the system is toggling the two LEDs every 2 seconds. Whenever a port interrupt occurs, the LEDs will go to their original states for 5 seconds and then continue toggling every 2 seconds.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions