Ali je ta program mogoče?

M

markcalaway

Guest
# include <p18f252.h>
# include <delays.h>

main (void)
(

int i, j, x, y;
x = 16;
y = 128;
j = 1; / / prvi servo = dušilke

while (x <= 20)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x-4); / / dušilke min do 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) / / dušilke max do min
PORTBbits.RB (j) = 0;
Delay100TCYx (y-4);
i ;
)
x-1;
y 1;
)
j ; / / servo spremembo enkrat

while (j <5) / / servo spremembe 4-krat
(
x = 16;
y = 128;
while (x <= 20)
(
i = 0;
while (i <2)
(
TRISBbits.TRISB (j) = 0;
PORTBbits.RB (j) = 1;
Delay100TCYx (x), / / drugi servos nevtralen do max
PORTBbits.RB (j) = 0;
Delay100TCYx (y);
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) / / drugi servos max do 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), / / drugi servos min za nevtralne
PORTBbits.RB (j) = 0;
Delay100TCYx (y);
i ;
)
x 1;
y-1;
)
j ; / / sprememba servo
)
)Bomo uporabljali ta program za nadzor nad 5 servos of Rc Helicopter.Port B bo namenjenih za to.(Npr. Port B pin 1 nadzoruje dušilna loputa, pin 2 kontrole krmila in tako naprej.

Problem imamo leži v "TRISBbits.TRISB (j)", tako, da ne priznava "j".S to vrstico im težaven spremeniti bitov pristanišča kot proizvodnja.Imel sem že poskušal premik register, vendar sčasoma Še vedno mislim, problem je v določitvi ustrezni bit kot donos in ne premika.Torej ni nobene ukaz jaz bi lahko uporabile za določitev proizvodnje using svoj stari format ali kaj podobnega brez večjih sprememb v programu.Vsak nasvet bi bil dobrodošel.Hvala.

 
Najprej morate določiti, kateri prevajalnik uporabljate.

Ne verjamem, da je mogoče napisati program, kot si želite, da bi bilo po vašem mnenju uporabljati masko vrednost jasen / set posameznih bitov pristanišča.

const unsigned char mask [] = (0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80);

/ / Set posameznih bit
PORTB | = mask [x];

/ / Jasno posameznih bit
PORTB & = (maska [x] ^ 0xFF);

upanje to pomaga in najboljše zvezi

 

Welcome to EDABoard.com

Sponsor

Back
Top