Back

/*********************************************************************

                 xBoard(TM) v2.0 Sample Programs
               ------------------------------------


Description : Demonstrate how to use ports in Input Mode.
         : Push Button is connected on PD2 (INPUT MODE)
         : LED is connected on PD7 (OUTPUT MODE)
         : >> When USER Button is NOT pressed LED blinks at 
              Normal Rate
         : >> When USER Button is Pressed LED blinks FAST

Author      : Avinash Gupta 2008
Web         : www.eXtremeElectronics.co.in
                   
**********************************************************************/

#include <avr/io.h>
#include <util/delay.h>

void Wait(uint8_t delay)
{
   uint8_t i;
   for(i=0;i<delay;i++)
   {
      _delay_loop_2(0);
      _delay_loop_2(0);
      _delay_loop_2(0);
      _delay_loop_2(0);
   }

}


void main()
{
   uint8_t delay=15; //Delay for blinking

   //Setup PORTs

   DDRD|=(1<<PD7);      //Make PD7 as Output (LED is connected to it)

   PORTD|=(1<<PD2);  //Enable Pullups on PC2 (Push Button is connected to it)

   while(1)
   {
      //Turn Off the LED
      PORTD|=(1<<PD7);

      Wait(delay);

      //Turn On the LED

      PORTD&=(~(1<<PD7));

      Wait(delay);

      //Check input
      if(PIND & (1<<PD2))
      {
         //Enter Key NOT pressed
         delay=15;
      }
      else

      {
         //Enter Key pressed
         delay=3;
      }
   }
}

Top