Vous êtes sur la page 1sur 3

Test Plan

1. One letter static multiplex


a) Single letter static multiplex
i.
Define integer arrays (each 6x6) for two letters, H and I
ii.
Write code that will output high or low through the serial O/P to the shift
registers
iii.
Initiate ports
iv.
Use code from part ii) to print integer array I
v.
Test and retest to find appropriate delay time between switching rows, as well as
optimum times for clearing/resetting shift registers
vi.
Once static I multiplexing is legible and consistent, try with integer array H
b) Shifting single letter multiplex
i.
Write a function to input a letter array into a template integer array
(displayArray, 6x24)
ii.
Ensure via testing that O/P loop designed in step a) works with displayArray
iii.
Write a shift function that will shift displayArray by one bit through all columns
iv.
Test O/P array is accurate by putting it through the O/P loop designed in a)
v.
Place the function call in the O/P loop in main and test and retest to find the best
delay and placement in the loop in order to shift legibly.
2. Write multiple letter arrays to displayArray and ensure that delays and loops are still
legible statically and with shift
3. Write multiple letter arrays to displayArray by indexing letters from a 3D matrix and test
until consistent.
4. Test adjustability of displayArray size (to allow for more than 4 characters)
Testing Results
1. K
a)
i. 2 integer arrays created for H and I
ie.
1
1
1
1
1
1

0
0
1
0
0
0

0
0
1
0
0
0

0
0
1
0
0
0

1
1
1
1
1
1

0
0
0
0
0
0

ii. Simple loop (nested for loop) written that will cycle through letter array and
O/P serial high or low to shift registers
iii. Used notes Dylan posted in ESE facebook group to initialize ports:
Ports used: PORT B:
PORT T:
PORT A:

0b0111
Decoder
0b01
Serial O/P to shift registers
0b10000001 Clock

Steps iv) vi)

Reset/Clear
Loop designed tested with int array I:
Character is not legible
Place reset and clock between row shifts in the loop
Letter is visible but flickering
Adjust delay function by setting DELAYCOUNT to 500
Letter is visible. Static multiplexing accomplished.

b) Write shift function


Since displayArray is declared globally, passing in the array creates
a local duplicate within the array. This duplicated array is used to
populate the global displayArray using the below logic:
displayArray[i][j] = tempArray[i][j+1];
Testing:
Shift works on all rows except top row
Adjust first row (had incorrect integer as looping maximum)
Shifting works!
Added extra if loop to accommodate last shift from column 24 to column 1:
displayArray[i][23] = tempArray[i][0];
Shift function placed in O/P loop in main after multiplexing static letters 20 times
Shift works but is too slow
Decrease loops before shifting to 10
Much more legible
2. Write multiple letter arrays to template and ensure that static displaying still works
statically and with bitshift
Delay function has to be adjusted for shifting with multiple
letters.ended up at a value of 3500 for DELAYCOUNT for optimal
shifting legibility
3. Multiple letters populated into the display array using indexing from a 3D array of letters
and tested through bitshifting O/P loop
Works, except for very last column

Problem is in populate function and the actual O/P loop. For some
reason, nested column for loops maximum must be <25 instead of
<24.

This fixed the last column lighting up but now one row is shifted
over one bit
Added an if catch that will compensate for the shifted row
Works!

Validation from MuSCoW requirements (All bolded requirements WERE MET)


1.
2.
3.
4.
5.

User specified fixed string O/P to the board


String up to 15 characters in length
A working 6x24 LED matrix and circuit
Number and symbol support
Loading screen

The only requirement not met was that for symbol and number support. This was not specified
as a MUST requirement and thus all requirements have been met for this project.

Vous aimerez peut-être aussi