康小印
級別: 探索解密
|
下面是我寫的步進電機程序。我細分裝置設置的是4000,下面應該會有3200個脈沖,也就是會旋轉0.8周,實際運行后并沒有0.8周這么多;后來我將程序兩個循環a>=0,和i>=0;發現電機運動停不下來,我想知道是怎么回事?謝謝 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit zmc=P1^0; sbit fmc=P1^1; sbit zfx=P1^2; sbit ffx=P1^3; void delay5ws(uchar); void main() { uint i,a; i=0; a=0; zmc=0; fmc=0; zfx=0; ffx=0; delay5ws(5); zfx=1; for(a=80;a>0;a--) { for(i=40;i>0;i--) { // delay5ws(5); zmc=1; // delay5ws(2); zmc=0; } } while(1) { zmc=0; fmc=0; zfx=0; ffx=0; } } void delay5ws(uchar n) { uint l,m; for(l=n;l>0;l--) for(m=2;m>0;m--); } |
---|---|
|