LED Functions

 

#include <stdio.h>

#include <ME218_C32.h>

#include <timers12.h>

#include "LED.h"

 

//----------------------------------------------------------------

 

void delayLED(unsigned int time_in_ms)

{

  unsigned int time;

  unsigned int time2;

 

  time = TMRS12_GetTime();

  time2 = TMRS12_GetTime();

 

  while((time2-time) < time_in_ms) {    // wait for desired amount of time

 

  time2 = TMRS12_GetTime();

   

  }

 

}

 

//----------------------------------------------------------------

 

void ClockPulseLED(void)

{   

   int i = 0;

   PTM = PTM | BIT1HI;            //set port M1 to HI (clock line)

  

   for (i=0; i<100; i++);

   //delayLED(1);                    //wait for at least 1ms

 

   PTM = PTM & BIT1LO;           //set port M1 to LO (clock line)

 

   for (i=0; i<100; i++);

   //delayLED(1);                    //wait for at least 1ms   

}

//----------------------------------------------------------------

 

void DataHighLED(void)

{

    PTM = PTM | BIT0HI;               // set M0 HI (data line)                            

    ClockPulseLED();

}

 

//----------------------------------------------------------------

 

void DataLowLED(void)

{

    PTM = PTM & BIT0LO;               // set M0 LO (data line)

    ClockPulseLED();

}

 

//----------------------------------------------------------------

 

void ClearLED()                    // set data low 8 times to

                                     // clear all shift register inputs

{

    DataLowLED();

    DataLowLED();

    DataLowLED();

    DataLowLED();

       

    DataLowLED();

    DataLowLED();

    DataLowLED();

    DataLowLED();

}

 

//----------------------------------------------------------------

 

void LEDInit( void)

{

   

    DDRM = DDRM | BIT2HI;    // set data direction on appropriate M bits

    DDRM = DDRM | BIT1HI;

    DDRM = DDRM | BIT0HI;

}

 

//----------------------------------------------------------------

 

void TurnOnLED(int LEDsign)                 // turn on appropriate LED

{

  ClearLED();

  switch(LEDsign)

  {

    case START_ENGINE_SIGN:

      DataHighLED();

      DataLowLED();

      DataLowLED();

      DataLowLED();

       

      DataLowLED();

      DataLowLED();

      DataLowLED();

      DataLowLED();     

      break;

     

    case ON_YOUR_MARKS_SIGN:

      DataLowLED();

      DataHighLED();

      DataLowLED();

      DataLowLED();

       

      DataLowLED();

      DataLowLED();

      DataLowLED();

      DataLowLED();     

      break;

     

    case GET_SET_SIGN:

      DataLowLED();

      DataLowLED();

      DataHighLED();

      DataLowLED();

       

      DataLowLED();

      DataLowLED();

      DataLowLED();

      DataLowLED();     

      break;

     

    case GO_SIGN:

      DataLowLED();

      DataLowLED();

      DataLowLED();

      DataHighLED();

       

      DataLowLED();

      DataLowLED();

      DataLowLED();

      DataLowLED();      

      break;

     

    case YOU_LOSE_SIGN:

      DataLowLED();

      DataLowLED();

      DataLowLED();

      DataLowLED();

       

      DataHighLED();

      DataLowLED();

      DataLowLED();

      DataLowLED();     

      break;

     

    case YOU_WIN_SIGN:

      DataLowLED();

      DataLowLED();

      DataLowLED();

      DataLowLED();

       

      DataLowLED();

      DataHighLED();

      DataHighLED();

      DataLowLED();     

      break;

     

    case FALSE_START_SIGN:

      DataLowLED();

      DataLowLED();

      DataLowLED();

      DataLowLED();

       

      DataLowLED();

      DataLowLED();

      DataLowLED();

      DataHighLED();     

      break;

     

    case OUT_OF_GAS_SIGN:

      DataLowLED();

      DataLowLED();

      DataLowLED();

      DataLowLED();

       

      DataLowLED();

      DataLowLED();

      DataLowLED();

      DataHighLED();     

      break;

     

     default:

     printf("not legal sign on input \r\n");

  }                         

   

  

}

 

Back to Pseudo Code

Back to the Starting Line