Homework
Homework
Before you start doing homework, You may find these defines in lcd.h
useful:
Edge Triggering vs Level Triggering
Consider 2 uses for a single button: (choose BTN1 or BTN2)
Q1 Level Triggering
While the button is down, print
Hello, (Your name)
on TFT (@1)While it is not, flash the LED (at least one LED). (@1)
Two actions should not happen simultaneously.
Hints:
In this case every time the loop comes around, we are concerned with the current state (or level) of the buttons GPIO Pin
The implementation of the button reading here should be obvious and simple
Notice the green button and the green LED
Q2 Edge Triggering
We want to print
Hello, (Your name)
for 1 second when the button is pressed, but only once for each press, so holding the button does nothing more. (@1)When the button is released, we want to flash the LED for 1 second, but again only once for each release. (@1)
The process repeats. i.e. it will print text again if you click the button. (@1)
Keywords:
The event of a signal going from low to high is called the rising edge and the opposite is the falling edge
The
gpio_read()
macro gives us the current state, but edge triggering also requires knowledge of the past state as well as some logic
Hints: How can we design some code that can call a function only when the button is first clicked? (Rising edge)
Bonus
Create a sprite in the middle of the screen. (Can be in any shape other than simple rectangle) (@1)
It will move to the left for one
CHAR_WIDTH
whenBTN1
is clicked and released,move to the right for one
CHAR_WIDTH
whenBTN2
is clicked and released. (@2 for both short press)
Last updated