定义全局变量num和status用来控制步进电机的速度和方向:
static int num=1;
static enum{off,clockwise,anticlockwise} status=off;
定义步进电机的整步模式正转脉冲表:
unsigned char pulse_table[] =
{
0x05, 0x09, 0x0a, 0x06,
};
定义时钟节拍函数time_tick()
static void time_tick(unsigned long data)
{
static int i=0;
switch(status)
{
case off: break;
case clockwise:
if(++i==num){
i=0;
if( row == 4 ) row = 0;
(*(char *)0xd3000006)=pulse_table[row++];
}
ttimer.expires=jiffies+1;
add_timer(&ttimer);
break;
case anticlockwise:
if(++i==num){
i=0;
if( row == -1 ) row = 3;
(*(char *)0xd3000006)=pulse_table[row