Reading input pin in avr using Embedded C

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

int main(void)
{
  DDRD |=  0<<PD2;//PD2 is set to Input
  PORTD |= 1<<PD2;//pull-up activated.So, PD2 is high by default

  DDRB |= 1<<PB5 ;
  PORTB |= 0<<PB5 ;
  char portDVal = 0;
  while(1)
  {

      _delay_ms(100);
      portDVal = PIND;

      if( portDVal & (1<<PD2) )//if PD2 is HIGH(value read is 1)
      {
        PORTB &= ~(1<<PB5);
        _delay_ms(50);
      }
      else//if PD2 is LOW(value read is 0)
      {
        PORTB |= (1<<PB5);
        _delay_ms(50);
      }
  }
}

About PraveenMax
My Interests: ------------------ Programming , Drawing & Music

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: