, ,

[SOLVED] EEC 7 Introduction to Microcontrollers R

$25

File Name: EEC_7_Introduction_to_Microcontrollers_R.zip
File Size: 376.8 KB

5/5 - (1 vote)

EEC 7

Introduction to Microcontrollers

TI BOOSTXL-EDUMKII BoosterPack

Lab4_Part1 Project Initialization

• Use the provided “EEC7_Lab4_P1_Project.zip”as the default starting point, find this archive in Canvas →Files →Micro-controller Labs.

a. From the Project Explorer, select Project > Import CCS Projects > Select archive file. Click the Browse button and navigate to the downloaded EEC7_Lab4_P1_Project.zip file.

b. Click Finish to import the project.

c. Rename the project and write your code in “main.c”.

• When starting a new lab, remember to fill in the information on top of “main.c”. You will see a few #include statements that we have prepared for you. Do not remove any of them, they are just there for Laboratory 4 , but you can add additional #include if you want.

• You should give the new project a new name, such as Lab4_part1 or bouncing_ball.

Lab 4, Part 1 Overview – Bouncing Ball

Objective: To develop a program that simulates a ball bouncing from the edges of the Booster Pack LCD screen.

• A ball is defined by the (x,y) coordinate of its center and radius.

• The ball moves after each SysTick interrupt* using the expression:

➢x = x + vx

➢y = y + vy

assuming vx, vy can be positive or negative.

• When the ball reaches an edge of the LCD, it should reflect off the wall such that the angle of incidence equals the angle of reflection.

Origin located at upper-left corner!

Coordinates indicated as pixel #

*What regulates the rate for the ISR?Reload Value

Reminder: SysTick Timer will service ISR

Program Specifications

• The circle should be redrawn in time-steps of about 50 – 100 ms. Therefore, a SysTick interrupt should be generated at a rate of 1/0.1 = 10 to 1/0.05 = 20 Hz.

• Do not draw, or erase, circles from within the SysTick ISR. Instead, set a flag in the SysTick ISR to signal the main function to erase the old ball and draw the new ball.

• The recommended radius for the circle is 3 to 4 pixels.

• The program should initiate with a circle close to the center of the screen. Recall that upper left corner is coordinate (0,0).

• The circle should start with a small initial velocity, for example:

â–Ş vx = 1 pixel / time-step

â–Ş vy = -1 pixel / time-step

Program Specifications-cont.

• Adding the x-velocity to the current x-coordinate will push the circle radius to the screen’s left or right boundaries, then the x-velocity should be inverted (how can we do this?).

• Similarly, if adding the y-velocity to the current y-coordinate will push the circle radius to the screen’s upper or lower boundaries, then the y-velocity should be inverted.

• To make the program more interesting, when the ball bounces off the wall at x = 0 or x = 127, increase the magnitude of the x-velocity by one up to a maximum of about 15. The microcontroller will not be able to update the ball for larger velocities.

• Similarly, when the ball bounces off the wall at y = 0 or y = 127, increase the magnitude of the y-velocity by one up to a maximum of 15.

Flowchart

âť‘ Your program will have 3 parts:

• Initialization code including:

➢ Watchdog Timer

➢ LCD

➢ SysTick Timer

• Main loop i.e. while (1)

• SysTick ISR

âť‘ A timer flag variable will be set in the SysTick ISR and polled in main. It must be cleared in main. (Why?)

âť‘ How should timer flag be defined?

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] EEC 7 Introduction to Microcontrollers R[SOLVED] EEC 7 Introduction to Microcontrollers R
$25