|
將步進電機驅動作為子程序調用,但是由于主程序處理其他子模塊需要很多時間導致步進電機裝的很慢,這種情況下該如何加快轉速,比如讓步進電機的驅動并行運行??
下面是我的代碼:
void main(void)
{
InitLcd();
temp_set_num=250;
while(1)
{
temp_display(); //主要是這個顯示模塊要耗費很多時間
stepper(&x);
};
}
#include <reg51.h>
#include "key.h"
unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10}; //正轉表格
unsigned char code B_Rotation[4]={0x10,0x08,0x04,0x02}; //反轉表格
/* 延時函數 */
void Delay_2(unsigned int i)//延時
{
while(--i);
}
/* 主函數 */
void stepper(unsigned int *x)
{
//unsigned char i;
if(flag==1)
{
(*x)++; //4相
if((*x)==4) (*x)=0;
P1=F_Rotation[*x]; //輸出對應的相 可以自行換成反轉表格
Delay_2(1); //改變這個參數可以調整電機轉速 ,數字越小,轉速越大
}
if(flag==2)
{
(*x)++; //4相
if((*x)==4) (*x)=0;
P1=B_Rotation[*x]; //輸出對應的相
Delay_2(1); //改變這個參數可以調整電機轉速 ,數字越小,轉速越大
}
if(flag==0) //停止
{
P1=0;
}
}
|
|