W
Waran
Guest
Hei,
Dette er kodingen jeg gjorde for å styre en DC motor å kjøre med klokken og mot klokken og kontrollere hastigheten på dc motor.I tidligere hatt problem når man bruker "delay_ms og jeg erstatte det ved å bruke en enkel løkke å lage en forsinkelse som er 'vent ()' kommando.Koden er feilfri da jeg kompilere bruker mikroC PRO compiler.But kan det virke når jeg brenner og gjelder for en krets nedenfor?
void vent () (
unsigned int k;
for (k = 0; k <5000; k );
)
void main (void)
(
Trisa = 0x00; / / Initialize disse portene som Outputs
TRISC = 0x00; / / This one too
TRISD = 0x00; / / This one tooooPORTA = 0x00; / / Initialize PORTA ... slik at lyset er av
PORTC.F0 = 0; / Brake Off
PORTD.F1 = 1; / / Management Forward
PORTD.F1 = 0; / / Management revers
mens 1 ()
(
if (PORTD.F1 == 1)
(
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00001111; / 0x0F Full Speed
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00001011; / 0X0B (3 / 4 Full Speed)
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00000101; / 0x07 (1 / 2 Full Speed)
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00000011; / 0x03 (1 / 4 Full Speed)
PORTD.F0 = 1; / / Slå Brake On
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTD.F0 = 0; / / Slå Brake Off
)
else if (PORTD.F1 == 0)
(
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00001111; / 0x0F (Full Speed)
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00001011; / 0X0B (3 / 4 Full Speed)
vent ();
vent ();
vent ();
vent (); / 4 * 0,5 sekunder = 2 sekunders pause
PORTC = 0b00000101; / 0x07 (1 / 2 Full Speed)
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00000011; / 0x03 (1 / 4 Full Speed)
PORTD.F0 = 1; / / Slå Brake On
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTD.F0 = 0; / / Slå Brake Off
)
)
)
<img src="http://images.elektroda.net/49_1250340780_thumb.png" border="0" alt="PIC18f452 dc motor coding help..." title="PIC18F452 DC motor koding hjelpe ..."/>
Dette er kodingen jeg gjorde for å styre en DC motor å kjøre med klokken og mot klokken og kontrollere hastigheten på dc motor.I tidligere hatt problem når man bruker "delay_ms og jeg erstatte det ved å bruke en enkel løkke å lage en forsinkelse som er 'vent ()' kommando.Koden er feilfri da jeg kompilere bruker mikroC PRO compiler.But kan det virke når jeg brenner og gjelder for en krets nedenfor?
void vent () (
unsigned int k;
for (k = 0; k <5000; k );
)
void main (void)
(
Trisa = 0x00; / / Initialize disse portene som Outputs
TRISC = 0x00; / / This one too
TRISD = 0x00; / / This one tooooPORTA = 0x00; / / Initialize PORTA ... slik at lyset er av
PORTC.F0 = 0; / Brake Off
PORTD.F1 = 1; / / Management Forward
PORTD.F1 = 0; / / Management revers
mens 1 ()
(
if (PORTD.F1 == 1)
(
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00001111; / 0x0F Full Speed
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00001011; / 0X0B (3 / 4 Full Speed)
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00000101; / 0x07 (1 / 2 Full Speed)
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00000011; / 0x03 (1 / 4 Full Speed)
PORTD.F0 = 1; / / Slå Brake On
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTD.F0 = 0; / / Slå Brake Off
)
else if (PORTD.F1 == 0)
(
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00001111; / 0x0F (Full Speed)
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00001011; / 0X0B (3 / 4 Full Speed)
vent ();
vent ();
vent ();
vent (); / 4 * 0,5 sekunder = 2 sekunders pause
PORTC = 0b00000101; / 0x07 (1 / 2 Full Speed)
vent ();
vent ();
vent ();
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTC = 0b00000011; / 0x03 (1 / 4 Full Speed)
PORTD.F0 = 1; / / Slå Brake On
vent (); / / Noe forsinkelse for å se den arbeider med menneskelige øyet
PORTD.F0 = 0; / / Slå Brake Off
)
)
)
<img src="http://images.elektroda.net/49_1250340780_thumb.png" border="0" alt="PIC18f452 dc motor coding help..." title="PIC18F452 DC motor koding hjelpe ..."/>