M
markcalaway
Guest
# Include <p18f252.h>
# Include <delays.h>
main (void)
(
int i, j, x, y;
x = 16;
y = 128;
j = 1, / / prvý servo = plyn
while (x <= 20)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x-4), / / min plynu na 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) / / plynu na max min
PORTBbits.RB (j) = 0;
Delay100TCYx (y-4);
i ;
)
x-1;
y 1;
)
j ; / / servo zmeniť, akonáhle
while (j <5) / / zmena servo 4 krát
(
x = 16;
y = 128;
while (x <= 20)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x); / / ostatné serva neutrálne max
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) / / ostatné serva max na min
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); / / ostatné serva min na neutrálne
PORTBbits.RB (j) = 0;
Delay100TCYx
;
i ;
)
x 1;
y-1;
)
j ; / / zmena servo
)
)Budeme používať program na kontrolu 5 serva z Rc vrtuľníka.Port B bude venovaný na to.(Napr. Port B pin 1 ovláda plyn, pin 2 ovládanie kormidla a tak ďalej.
Problém máme leží v 'TRISBbits.TRISB (j)', tak, že neuznáva 'j'.Vďaka tejto línie im snaží zmeniť bity portu ako výstupu.Už som sa snažil posuvný register, ale nakoniec som stále si myslím, že problém spočíva v stanovení zodpovedajúcej bit na produkciu a nie radenie.Takže je nejaký príkaz ktorý by som mohol použiť na nastavenie výstupu pomocou môj starý formát alebo niečo podobné, bez akýchkoľvek zásadných zmien v programe.Any advice chcel by som byť ocenil.Ďakujem ti.
# Include <delays.h>
main (void)
(
int i, j, x, y;
x = 16;
y = 128;
j = 1, / / prvý servo = plyn
while (x <= 20)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x-4), / / min plynu na 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) / / plynu na max min
PORTBbits.RB (j) = 0;
Delay100TCYx (y-4);
i ;
)
x-1;
y 1;
)
j ; / / servo zmeniť, akonáhle
while (j <5) / / zmena servo 4 krát
(
x = 16;
y = 128;
while (x <= 20)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x); / / ostatné serva neutrálne max
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) / / ostatné serva max na min
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); / / ostatné serva min na neutrálne
PORTBbits.RB (j) = 0;
Delay100TCYx
i ;
)
x 1;
y-1;
)
j ; / / zmena servo
)
)Budeme používať program na kontrolu 5 serva z Rc vrtuľníka.Port B bude venovaný na to.(Napr. Port B pin 1 ovláda plyn, pin 2 ovládanie kormidla a tak ďalej.
Problém máme leží v 'TRISBbits.TRISB (j)', tak, že neuznáva 'j'.Vďaka tejto línie im snaží zmeniť bity portu ako výstupu.Už som sa snažil posuvný register, ale nakoniec som stále si myslím, že problém spočíva v stanovení zodpovedajúcej bit na produkciu a nie radenie.Takže je nejaký príkaz ktorý by som mohol použiť na nastavenie výstupu pomocou môj starý formát alebo niečo podobné, bez akýchkoľvek zásadných zmien v programe.Any advice chcel by som byť ocenil.Ďakujem ti.