#define start porta.f4
#define right porta.f0
#define left porta.f1
void foward();
void main()
{
TRISA=0XFF;
PORTA=0;
TRISB=0;
TRISC=0;
PORTC=1;
TRISD=0;
PORTD=0;
do{
if (start==0)
{
foward();
}
}while(1);
}
!
void foward(void)
{
portd.f0=1; // D1 turn on
delay_ms(100); // delay for 1s
portd.f0=0; // D1 turn off
delay_ms(100); // delay for 1s
portc.f0=1; // servo 1 is high
delay_ms(2); // servo 1 turn 90
portc.f0=0; // servo 1 is low
delay_ms(500); // delay for 0.5s
portc=0; // PORTC is low
portc.f2=1; // servo 2 is high
delay_ms(1); // servo 2 turn -90
portc.f2=0; // servo 2 is low
delay_ms(500); // delay for 0.5s
portc=0; // PORTC is low
portc.f0=1; // servo 1 is high
delay_ms(1); // servo 1 turn -90
portc.f0=0; // servo 1 is low
delay_ms(500); // delay for 0.5s
portc=0; // PORTC is low
portc.f4=1; // servo 3 is high
delay_ms(2); // servo 3 turn 90
portc.f4=0; // servo 3 is low
delay_ms(500); // delay for 0.5s
portc=0; // PORTC is low
portc.f0=1; // servo 1 is high
delay_us(1500); // servo 2 turn to centre
portc.f0=0; // servo 1 is low
delay_ms(500); // delay for 0.5s
portc=0; // PORTC is low
portc.f2=1; // servo 2 is high
delay_ms(2); // servo 2 turn 90
portc.f2=0; // servo 2 is low
portc.f4=1; // servo 3 is high
delay_ms(1); // servo 3 turn -90
portc.f4=0; // servo 3 is low
delay_ms(500); // delay for 0.5s
portc=0; // PORTC is low
}