Zamuyk@tel » 24 июл 2009, 12:55
#include <motor.h>
char txt[6];
char x,i=0;
char *text1= "Start RBX-877 " ;
char *text2= "Running LED " ;
char *text3= "MOTOR FORWARD " ;
char *text4= "MOTOR Backward " ;
char *text5= "Servo Left " ;
char *text6= "Servo Right " ;
void main()
{
Lcd_Init(&PORTD); // Initialize LCD connected to PORTB
Lcd_Cmd(Lcd_CLEAR); // Clear display
Lcd_Cmd(Lcd_CURSOR_OFF); // Turn cursor off
Sound_Init(&PORTC, 0); // Init Sound
TRISC.F5 =0;
TRISB.F4 =0;
TRISB.F5 =0;
ANSEL=0x00;
ANSELH=0x00;
Lcd_Out(2,1,text1);
sound_play(250,50); // 2 kHz sound ON RC0
while(1)
{
if((!PORTA.F4) && (!PORTB.F0) )
{
TRISA=0x10;
TRISE=0x00;
TRISC=0x00;
TRISB.F0=0;
ANSEL=0xFF;
ANSELH=0xFF;
Lcd_Out(1,1,text2);
sound_play(250,50); // 2 kHz sound ON RC0
while(1)
{
PORTB.F0=1;
PORTA=0x55;
PORTC=0x54;
PORTE=0x55;
Delay_ms(100);
PORTA=0xAA;
PORTC=0xAA;
PORTE=0xAA;
PORTB.F0=0;
Delay_ms(100);
}
}
if (!PORTA.F4) // Test RA4 keypress
{
TRISB.F3=0;
while(1)
{
Lcd_Out(1,1,text3);
sound_play(250,50); // 2 kHz sound ON RC0
Forward(255);
PORTB.F3=1;
Delay_ms(1000);
Lcd_Out(1,1,text4);
sound_play(230,50); // 2 kHz sound ON RC0
backward(255);
PORTB.F3=0;
Delay_ms(1000);
}
}
if (!PORTB.F0) // Test RA4 keypress
{
while(1)
{
Lcd_Cmd(LCD_CLEAR);
Lcd_Out(1,1,text5);
for (x=0;x<40;x++)
{
PORTC.F5=1;
PORTB.F5=1;
PORTB.F4=1;
delay_us(1000);
PORTC.F5=0;
PORTB.F5=0;
PORTB.F4=0;
delay_ms(20);
}
sound_play(185,100);
Lcd_Cmd(LCD_CLEAR);
Lcd_Out(1,1,text6);
for (x=0;x<30;x++)
{
PORTC.F5=1;
PORTB.F5=1;
PORTB.F4=1;
delay_us(2000);
PORTC.F5=0;
PORTB.F5=0;
PORTB.F4=0;
delay_ms(20);
}
sound_play(150,200);
}
}
}
}
вот С-код тестовой программы как заставить сервы срабатывать в разной последовательности?