⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hard.c.txt

📁 嵌入式linux学习之uclinux步进电机驱动实例(测试平台S3C44B0X,uclinux系统)
💻 TXT
字号:
//associate with the hardware
usigned short x_steptable[8] = 
	{0x0001, 0x0005, 0x0004, 0x0006, 0x0002, 0x000A, 0x0008, 0x0009};
usigned short y_steptable[8] = 
	{0x0010, 0x0050, 0x0040, 0x0060, 0x0020, 0x00A0, 0x0080, 0x0090};
usigned short z_steptable[8] = 
	{0x0100, 0x0500, 0x0400, 0x0600, 0x0200, 0x0A00, 0x0800, 0x0900};
unsigned short flipbits = 0x0B00;
unsigned short irq_enable_bit = 0x1000;
unsigned short word;
int irq = 0;
static int major = 31;

void verbose_outb(int port, int value)
{
	printf("outb(%02X, %04X)", port, value);
}

void move_one_step()
{
	if(xdest > xpos){
		xpos++;
	}else if(xdest < xpos){
		xpos--;
	}

	if(ydest > ypos){
		ypos++;
	}else if(ydest < ypos){
		ypos--;
	}

	if(zdest > zpos){
		zpos++;
	}else if(zdest < zpos){
		zpos--;
	}
	word = x_steptable[xpos % 8]
    		| y_steptable[ypos % 8]
 		| z_steptable[zpos % 8] ;
	if(interrupts_are_enabled) word |= irq_enable_bit;
	word ^= flipbits;
	verbose_outb( (word & 0x00FF), base + 0);
	verbose_outb( (word >> 8), base + 2);
	if(verbose_move) report_status(); 
}

void parse_one_char(char c)
{
	static int value;
	static int dest=' ';
	static int negative=0;
	if( (c > 'a') && (c < 'z') ) c = c - 'a' + 'A';
	switch(c){
		case('X'):
		case('Y'):
		case('Z'):
			dest = c;
			break;
		case('='): 
			break;
		case('-'):
			negative = !negative;
		case('+'):
			negative = 0;
		case('0'):
		case('1'):
		case('2'):
		case('3'):
		case('4'):
		case('5'):
		case('6'):
		case('7'):
		case('8'):
		case('9'):
			value *= 10;
			value += (c - '0');
			break;
		case(','):
		case('\n'):
		case('\r'):
			if(negative){
				value = -value;
			}
			if(dest == 'X'){
				xuser = value;
			}else if(dest == 'Y'){
				yuser = value;
			}else(dest == 'Z'){
				zuser = value;
			}
 			if( (c == '\r') || (c == '\n') ){
				xdest = xuser;
				ydest = yuser;
				zdest = zuser;
			}
			break
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -