Untitled
unknown
c_cpp
a year ago
2.6 kB
11
Indexable
#include "system.h"
#include "pio.h"
/* Include the pacer module from the previous lab.
You must have completed this before starting this lab2-exercise. */
#include "pacer.h"
int main (void)
{
system_init ();
/* TODO: Initialise the pins of the LED matrix. */
pio_config_set(LEDMAT_COL1_PIO, PIO_OUTPUT_HIGH);
pio_config_set(LEDMAT_COL2_PIO, PIO_OUTPUT_HIGH);
pio_config_set(LEDMAT_COL3_PIO, PIO_OUTPUT_HIGH);
pio_config_set(LEDMAT_COL4_PIO, PIO_OUTPUT_HIGH);
pio_config_set(LEDMAT_COL5_PIO, PIO_OUTPUT_HIGH);
pio_config_set(LEDMAT_ROW1_PIO, PIO_OUTPUT_HIGH);
pio_config_set(LEDMAT_ROW2_PIO, PIO_OUTPUT_HIGH);
pio_config_set(LEDMAT_ROW3_PIO, PIO_OUTPUT_HIGH);
pio_config_set(LEDMAT_ROW4_PIO, PIO_OUTPUT_HIGH);
pio_config_set(LEDMAT_ROW5_PIO, PIO_OUTPUT_HIGH);
pio_config_set(LEDMAT_ROW6_PIO, PIO_OUTPUT_HIGH);
pio_config_set(LEDMAT_ROW7_PIO, PIO_OUTPUT_HIGH);
/* Set up pacer with a frequency of 100 Hz.
This gives 50Hz alternating between the 2 states.*/
pacer_init (100);
int state = 0;
while (1)
{
/* Pace the loop. */
pacer_wait ();
/* TODO: Drive the LED matrix using the pio functions,
displaying only three corner LEDs. */
if (state == 0) {
/* Turn off other columns before setting new configuration */
pio_output_high(LEDMAT_COL2_PIO);
pio_output_high(LEDMAT_COL3_PIO);
pio_output_high(LEDMAT_COL4_PIO);
pio_output_high(LEDMAT_COL5_PIO);
pio_output_high(LEDMAT_ROW2_PIO);
pio_output_high(LEDMAT_ROW3_PIO);
pio_output_high(LEDMAT_ROW4_PIO);
pio_output_high(LEDMAT_ROW5_PIO);
pio_output_high(LEDMAT_ROW6_PIO);
/* New configuration */
pio_output_low(LEDMAT_ROW1_PIO);
pio_output_low(LEDMAT_ROW7_PIO);
pio_output_low(LEDMAT_COL1_PIO);
} else {
/* Turn off other columns before setting new configuration */
pio_output_high(LEDMAT_COL1_PIO);
pio_output_high(LEDMAT_COL2_PIO);
pio_output_high(LEDMAT_COL3_PIO);
pio_output_high(LEDMAT_COL4_PIO);
pio_output_high(LEDMAT_ROW7_PIO);
pio_output_high(LEDMAT_ROW2_PIO);
pio_output_high(LEDMAT_ROW3_PIO);
pio_output_high(LEDMAT_ROW4_PIO);
pio_output_high(LEDMAT_ROW5_PIO);
pio_output_high(LEDMAT_ROW6_PIO);
/* New configuration*/
pio_output_low(LEDMAT_ROW1_PIO);
pio_output_low(LEDMAT_COL5_PIO);
}
state = !state;
}
}Editor is loading...
Leave a Comment