void align_cw(void)
{
	PORTG=0x00;
	clockwise=1;
	counterwise=0;
	PORTG&=~(1<<0);
	PORTC=0x01;

	unsigned char degree;
	degree_set_new=eeprom_read_byte(25);
    if(degree_set_new<12)      // keeping 120 in mind
	{
		for(degree=0;degree<50;degree++)
		{
		PORTC=0xff;
		_delay_us(555);
		PORTG|=(1<<4);
		_delay_us(5);
		PORTG&=~(1<<4);
		}
	degree_set_new++;
	eeprom_write_byte(25,degree_set_new);
	}
	lcd_gotoxy2(5);
	lcd_string("    ");
	lcd_gotoxy2(0);
	lcd_string("CW=");
	lcd_num(eeprom_read_byte(25));

}
void motor_execute(void)
{cli();
	unsigned char degree_exec_cw;
	unsigned char degree_exec;
	unsigned char degree_exec_ccw;
	
	unsigned char variance;
	
	degree_set_new=eeprom_read_byte(25);
	
    for(degree_exec_cw=degree_set_new;degree_exec_cw<600;) // 600 for 6000 degrees
    	{
        PORTC=0x33;
        motor_dir_cw();
        for(degree=0;degree<50;degree++)
            {cli();
            PORTG|=(1<<4);
            _delay_us(555);
            PORTG&=~(1<<4);
            _delay_us(5);
            
            }
            degree_exec_cw++;
            eeprom_write_byte(25,degree_exec_cw);
             
             //sei();
            _delay_ms(4);
           
            if (flag==1)
            {
            
            degree_exec_cw=eeprom_read_byte(25);
            lcd_gotoxy2(13);
            lcd_num(degree_exec_cw);
            _delay_ms(300);
            PORTC=0x01;
            }
            
        //_delay_ms(240000);
        lcd_gotoxy1(10);
        lcd_string("   ");
        lcd_gotoxy1(10);
        lcd_num(eeprom_read_byte(25));
        }

    
   
    for(degree_exec_ccw=600;degree_exec_ccw>1;)
    {   PORTC=0x77;
        //cli();
        motor_dir_ccw();
        for(degree=0;degree<50;degree++)
        {
            PORTG|=(1<<4);
            _delay_us(555);
            PORTG&=~(1<<4);
            _delay_us(5);
        }
        degree_exec_ccw--;
        eeprom_write_byte(25,degree_exec_ccw);
        lcd_gotoxy1(10);
        lcd_string("   ");
        lcd_gotoxy1(10);
        lcd_num(eeprom_read_byte(25));
        //sei();
    }


sei();
}
int main(void)
{
   DDRD |=(1<<4)|(1<<5); //initialising PORTS of motors
   DDRD |=(1<<6)|(1<<7);
   DDRB |=(1<<0)|(1<<1); // lifting motor initialization
	 
   DDRC |=(1<<3);// initialising port of buzzer .
   DDRD |=(1<<1); 

   PORTB |= (1<<5); // activating pullups for switch
	 
	    lcd_init();
        PORTC|= (1<<1);  // initialising lcd
        lcd_gotoxy1(0);
	    

	//init();             //adc initialization    
	
   while(1)
  {
    
   c1=0;  
	lcd_gotoxy1(0);
	lcd_string("x:");
	lcd_showvalue1(currx);
	lcd_string("y:");
	lcd_showvalue1(curry);
	lcd_string("o:");
	lcd_showvalue1(ori);
	
   linefollower();
   
   
   update();
   
   takecareofobject();
     
   c1 = decide();
       
	   inch();
	   
	   
    turn(c1);
	
	
	lcd_gotoxy2(0);
	
	lcd_char(c1);
	lcd_string("ox : ");
	lcd_showvalue1(objx);
	lcd_string("oy : ");
	lcd_showvalue1(objy);
	
	//if((PINA & (1<<1))||(PINA & (1<<5)))
	//f2=0;
	if(c1=='N')
	break;
   
   }

}