This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

STEPPER MOTOR QUERY

HI I AM WORKING ON STEPPER MOTOR WITH MICROCONTROLLOR(P89V51RD2BN).THIS IS MY PROGRAM.
#include<reg52.h>

#define ST_CNTRL P1;

void delay(void);

void main()
{ unsigned char k; for(k=0;k<30;k++) { P1 = 0x66; delay(); P1 = 0xcc; delay(); P1 = 0x99; delay(); P1 = 0x33; delay(); }
}

void delay(void)
{ unsigned int i,j;

for(i = 0; i<0x20; i++) { for(j = 0; j<0x20; j++) { } }
} PROBLEM IS THE STEPPER MOTOR DOESNT STOP AFTER 30 STEPS AS GIVEN IN FOR LOOP.IT JUST JERKS AFTER 30 STEPS AND CONTINUE ROTATING,I WANT TO STOP IS AFTER 30 STEPS. CAN ANY ONE HELP?

Parents
  • What was wrong with just a

    while (1) ;
    

    or

    for (;;) ;
    

    just before the closing brace of main()? Too simple versions of an infinite loop?

    This is most definitely not the most beautiful infinite loop I have seen:

    for (j = 0; j < 0xff; j++) {
        for (k = 1; k < 0xff; k++) {
            j = 0;
            P1 = 0x00;
        }
    }
    


    But at least you didn't use goto to create the loop.

Reply
  • What was wrong with just a

    while (1) ;
    

    or

    for (;;) ;
    

    just before the closing brace of main()? Too simple versions of an infinite loop?

    This is most definitely not the most beautiful infinite loop I have seen:

    for (j = 0; j < 0xff; j++) {
        for (k = 1; k < 0xff; k++) {
            j = 0;
            P1 = 0x00;
        }
    }
    


    But at least you didn't use goto to create the loop.

Children