M
markcalaway
Guest
# include <p18f252.h>
# include <delays.h>
main (void)
(
int i, j, x, y;
x = 16;
y = 128;
j = 1; / / pertama servo = throttle
while (x <= 20)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x-4); / / throttle min ke max
PORTBbits.RB (j) = 0;
Delay100TCYx (y 4);
i ;
)
x 1;
y-1;
)
x = 16;
y = 128;
while (x> = 12)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x 4); / / throttle max ke min
PORTBbits.RB (j) = 0;
Delay100TCYx (y-4);
i ;
)
x-1;
y 1;
)
j ; / / servo berubah begitu
while (j <5) / / servo perubahan 4 kali
(
x = 16;
y = 128;
while (x <= 20)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x); / / servos lainnya netral untuk maks
PORTBbits.RB (j) = 0;
Delay100TCYx
;
i ;
)
x 1;
y-1;
)
x = 16;
y = 128;
while (x> = 12)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x 4); / / servos lain untuk min max
PORTBbits.RB (j) = 0;
Delay100TCYx (y-4);
i ;
)
x-1;
y 1;
)
x = 16;
y = 128;
while (x <= 16)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x); / / lain servos menit ke netral
PORTBbits.RB (j) = 0;
Delay100TCYx
;
i ;
)
x 1;
y-1;
)
j ; / / ubah servo
)
)Kita akan menggunakan program ini untuk mengontrol 5 servos dari Rc Helicopter.Port B akan didedikasikan untuk ini.(Mis. Port B pin 1 mengontrol throttle, pin 2 menguasai kemudi dan seterusnya.
Masalahnya kita terletak pada 'TRISBbits.TRISB (j)', sedemikian rupa sehingga tidak mengenali 'j'.Dengan baris ini im mencoba mengubah bit dari port output.Saya sudah mencoba register geser, tapi akhirnya saya masih berpikir bahwa masalahnya terletak pada pengaturan yang sesuai sama output dan tidak bergeser.Jadi, apakah ada perintah saya bisa gunakan untuk mengatur output menggunakan format lama saya atau yang serupa tanpa membuat perubahan besar pada program tersebut.Any advice would be appreciated.Terima kasih.
# include <delays.h>
main (void)
(
int i, j, x, y;
x = 16;
y = 128;
j = 1; / / pertama servo = throttle
while (x <= 20)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x-4); / / throttle min ke max
PORTBbits.RB (j) = 0;
Delay100TCYx (y 4);
i ;
)
x 1;
y-1;
)
x = 16;
y = 128;
while (x> = 12)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x 4); / / throttle max ke min
PORTBbits.RB (j) = 0;
Delay100TCYx (y-4);
i ;
)
x-1;
y 1;
)
j ; / / servo berubah begitu
while (j <5) / / servo perubahan 4 kali
(
x = 16;
y = 128;
while (x <= 20)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x); / / servos lainnya netral untuk maks
PORTBbits.RB (j) = 0;
Delay100TCYx
i ;
)
x 1;
y-1;
)
x = 16;
y = 128;
while (x> = 12)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x 4); / / servos lain untuk min max
PORTBbits.RB (j) = 0;
Delay100TCYx (y-4);
i ;
)
x-1;
y 1;
)
x = 16;
y = 128;
while (x <= 16)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x); / / lain servos menit ke netral
PORTBbits.RB (j) = 0;
Delay100TCYx
i ;
)
x 1;
y-1;
)
j ; / / ubah servo
)
)Kita akan menggunakan program ini untuk mengontrol 5 servos dari Rc Helicopter.Port B akan didedikasikan untuk ini.(Mis. Port B pin 1 mengontrol throttle, pin 2 menguasai kemudi dan seterusnya.
Masalahnya kita terletak pada 'TRISBbits.TRISB (j)', sedemikian rupa sehingga tidak mengenali 'j'.Dengan baris ini im mencoba mengubah bit dari port output.Saya sudah mencoba register geser, tapi akhirnya saya masih berpikir bahwa masalahnya terletak pada pengaturan yang sesuai sama output dan tidak bergeser.Jadi, apakah ada perintah saya bisa gunakan untuk mengatur output menggunakan format lama saya atau yang serupa tanpa membuat perubahan besar pada program tersebut.Any advice would be appreciated.Terima kasih.