You are on page 1of 7

...

.

ms 0.7 ms 2.3 0 180.

). delay_us(1000
.

( ) .
;) (Delay_Cyc
;) ( Delay_Cyc
.
4 Mega Hertz 1 .
100
;) Delay_Cyc (10
*. 10
1.7

1700 (S)/10=170
So,
;)Delay_Cyc (170
.
90.
1500 18500 50
.
{)while(1
;servo1=on
;)Delay_Cyc(150
// delay=150*10=1500 us=1.5 ms
; servo1=off
;)delay_ms(1850
}

{)while(1
;delay=i*10
;delay=delay+n
;servo1=on
;)Delay_Cyc(delay
// delay=70*10=700 us=.7 ms
;servo1=off
;)delay_ms(20
;)if(sw1==pressed){delay_ms(200
;n++
};if(n>=161){n=0
}}

:
delay 70 230 .
. n,m
n
;)if(sw1==pressed){delay_ms(200
;n++
i 7 :
;delay=i*10
//delay=70
delay=delay+n ; // delay =70+1=71

* 10 701
0.71 .

;)Delay_Cyc(delay

n 161
700 2300
. 10
2300-700=1600/10=160 n(max)=160

// servo motor control
// author :ashraf kamal elhamahmy
// 14-april-2012
# define servo1 portb.f1
# define servo1_dir trisb.f1
# define servo2 portb.f3

#
#
#
#
#
#
#
#
#
#

define servo2_dir trisb.f3


define sw1 portb.f0
define sw2 portb.f2
define sw1_dir trisb.f0
define sw2_dir trisb.f2
define pressed 0
define output 0
define input 1
define on 1
define off 0
char i;
char n; unsigned short delay;
void init(){
servo1_dir=output;
servo2_dir=output;
sw1_dir=input;
sw2_dir=input;
}
void main() {
init(); i=7;
n=0;
while(1){
delay=i*10;
delay=delay+n;
servo1=on;
Delay_Cyc(delay);
// delay=70*10=700 us=.7 ms
servo1=off;
delay_ms(20);
if(sw1==pressed){delay_ms(200);//
n++;
if(n>=161){n=0;}
} } }

//

:
// servo motor control
// author :ashraf kamal elhanahmy
// 14-november-2012
# define servo1 portb.f1
# define servo1_dir trisb.f1
# define servo2 portb.f3
# define servo2_dir trisb.f3
# define sw1 portb.f0
# define sw2 portb.f2
# define sw1_dir trisb.f0
# define sw2_dir trisb.f2
# define pressed 0
# define output 0
# define input 1
# define on 1
# define off 0
char i;
char n; unsigned short delay;
unsigned short delay2;
char m,d;
void init(){
servo1_dir=output;
servo2_dir=output;
sw1_dir=input;

sw2_dir=input;
}
void main() {
init();

i=7;
n=0;
m=0;
d=7;
while(1){

delay=i*10;
delay=delay+n;
delay2=d*10;
delay2=delay2+m;

servo1=on;

/// first servo output

Delay_Cyc(delay);
servo1=off;
delay_ms(20);

servo2=on;
Delay_Cyc(delay2);
servo2=off;
delay_ms(20);

/// second servo output


// delay=70*10=700 us=.7 ms

;)if(sw1==pressed){delay_ms(200
;n++

};if(n>=161){n=0
}
;)if(sw2==pressed){ delay_ms(200
;m++
};if(m>=161){m=0
}
}

ashrafmostafakamal@yahoo.com

You might also like