Untitled

 avatar
unknown
c_cpp
9 months ago
2.6 kB
8
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