scara.h

来自「scara机器人的一种简单的实现方法」· C头文件 代码 · 共 68 行

H
68
字号
extern void   RS_SCARA_PORT_INIT(void);
extern int    RS_SCARA_SEND(int byte_data);
extern int    RS_SCARA_RECEIVE(void);
//extern struct read_data RS_RECEIVE(void);

/*  initialize serial port */
void RS_SCARA_PORT_INIT(void)
{
   outportb(0x03FB, 0x80);
   outportb(0x03F8, 0x0C);
   outportb(0x03F9, 0x00);
   outportb(0x03FB, 0x07);
   outportb(0x03FC, 0x03);
   outportb(0x03F9, 0x00);

   return;
}

/* send 1 byte and verify RS-232C */
int RS_SCARA_SEND(int byte_data)
{
   int data, time = 1;
   int RS_ERR;
   char ch;

   RS_ERR = TRUE;
   outport(0x03F8, byte_data);   // output 'byte_data'
   if (byte_data!=0) {
     for(;;) {
       ch = inportb(0x03fd);       // check read port ready
       ch &= (0x01);
       if (ch!=0) {
	 data = inport(0x03F8);    // read and verify
	 if (data!=byte_data) {
	   outport(0x03F8, byte_data);
	   time++;
	   if (time>=5) { RS_ERR = FALSE; break; }
	 }
	 else {
	  outport(0x03F8, 0);   // output 'byte_data'
//	  printf("%d ",data);
	  break;
	 }
   }}}

   return RS_ERR;
}

int RS_SCARA_RECEIVE(void)
{
   int RS_ERR;
   int data;
   char ch;

   RS_ERR = TRUE;
   for(;;) {
     ch = inportb(0x03fd);       // check read port ready
     ch &= (0x01);
     if (ch!=0) {
	   data = inport(0x03F8);    // read and verify
      outport(0x03F8, data);
      if (data==1) break;
   }}

   return RS_ERR;
}

⌨️ 快捷键说明

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