Create a function void initpwmvoid which configures the 3


Lab

Create a function, void Init_PWM(void) which configures the 3 pulse width modulation signals. Use Timer B.

Use the following count register definitions:

TB0CCR0 - Repeat frequency (PERIOD) TB0CCR2 - Blue element duty cycle TB0CCR3 - Green element duty cycle TB0CCR4 - Red element duty cycle

To do this you must perform the following configurations:

1. Set up the TB0CTL register to use the ACLK as the counter source, and the mode to up-mode. You may assume that the other register settings are fine in their default state. NOTE that it is acceptable and PREFERRABLE to define all of the bits the first time you initialize a register.

Do not bit set and bit clear. Program the register with a 16-bit hexadecimal value.

2. Set up the TB0CCTL2, TB0CCTL3, TB0CCTL4 registers to all do the following:

a. CLLD (Compare Latch Load) set to TB0CLn loads when TB0R counts to 0 (up or continuous mode) (n=2,3,4).

b. OUTMOD set to Reset/Set

You may assume that the other TB0CCTLx register settings are fine in their default state. NOTE that it is acceptable and PREFERRABLE to define all of the bits the first time you initialize a register. Do not bit set and bit clear. Program the register with a 16-bit hexadecimal value.

3. Use TB0CCR0 for the Pulse Period and set to 100 Hz (use the value for #define PERIOD in 3567.h).

4. Configure P2.2, P3.6, and P3.7 as the outputs.

a. Set the bits in the correct PxDIR registers

5. Set outputs to Secondary Function [10] for PWM

a. Set the correct bitr is PxSEL1

b. Clear the correct bit in PxSEL0

The preceding sets up the TB0.2, TBO.3, and TBO.4 for PWM. Refer to the Quick Start Guide for the Evaluation Board located in Useful Info on the class website.

6. Use the following variables for the 3 RGB pulse widths

a. duty_cycle_red TB0.4

b. duty_cycle_green TB0.3

c. duty_cycle_blue TB0.2

Checkpoint 1: Ask the Lab Monitors to check your values for the Timer Control Registers (TB0CTL, TB0CCTL2, TB0CCTL3, TB0CCTL4).

Checkpoint 2: Demonstrate the 3 PWM signals on the oscilloscope with duty cycles of 25% for Blue, 50% for green and 75% for red.

Create a file called RGB_LED.c. write code to adjust the 3 PWMs to generate the following colors and conditions when the corresponding commands are sent from Putty.

LH - Red, Flashing at > 4 Hz LR - Red
LO - Orange LY - Yellow LG - Green LB - Blue
LP - Purple
LC - Purple, Flashing at > 4 Hz

I recommend a duty cycle setting 0f 0x100 for both blue and red alone, and 0x070 for green alone. The combinations for purple, orange, and yellow should never use a duty cycle more than 0x100. It will be too bright.

You should also add enable and disable commands for an LED Test Mode. LT should enable this mode. LD should disable this mode.

For the Flash conditions on the LH (Hot) and LC (Cold) commands, use the Timer A0 interrupt service routine in main to enable and disable the PWM.

Instead of every 10 cycles, make the OFF/ON (the Flash) toggle every time the interrupt service routine executes. There are a number of ways to do OFF and ON without re-initializing!

Checkpoint 3: Demonstrate 8 LED conditions using the commands from Putty

Checkpoint 4: Clean-up Checkpoint. Please leave the Custom Booster Pack board in the lab.

Request for Solution File

Ask an Expert for Answer!!
Other Engineering: Create a function void initpwmvoid which configures the 3
Reference No:- TGS02691355

Expected delivery within 24 Hours