📄 senddata0.c
字号:
#include "wea_dos.h"
void SendData()
{
int p=WEAVER_I;
g_wea_i._byte=inb(p);
bEnable_h=g_wea_i._bit.enable;
bBackwd_h=g_wea_i._bit.backwd;
bWobrk_h=g_wea_i._bit.wo_brk;
bShutle_h=g_wea_i._bit.shutle;
bFirstBack=0;
g_bWoofFinish=0;
StartRun();
bSendData=1;
while(bSendData);
{
bCheckOK=1;
if(CheckIO(&HardErr)==FALSE)
{
StopRun();
bSendData=0;
}
g_wea_i._byte=inportb(p);
switch(flag)
{
case 0:
/* for fast run */
while(g_wea_i._bit.fast==0)
{
if((bEnable_h==1) && (g_wea_i._bit.enable==0)) /* enable falling_edge*/
{
bFinish=Forward1(); /*case 1*/
bCheckOK=SendOneLineCheckThis(0);
if(bFinish)
bSendData=0;
}
if((bEnable_h==0) && (g_wea_i._bit.enable==1))/* enable rising_dedge; fast 0*/
SendControl(g_wea_i._bit.backwd,g_wea_i._bit.shutle);
bEnable_h=g_wea_i._bit.enable;
g_wea_i._byte=inportb(p);
if(CheckIO(&HardErr)==FALSE)
{
StopRun();
GetCheckInfo(&HardErr,ErrorInfo);
bSendData=0;
Forward1(); Forward1();
break;
}
if((bCheckOK==FALSE) && (g_bDataLock==1))
{
bSendData=0;
Forward1();
StopRun();printf("\nData transmission error in running\n");
break;
}
} /*caes 0, while(fast)*/
if((bBackwd_h==1) && (g_wea_i._bit.backwd==0) ) /* not fast, backwd falling_edge*/
{
if(g_wea_i._bit.shutle==0) /*shutle=0, case 8 */
{
Backward1(); Backward1(); /* case 8 */
SendOneLine(1);
printf("\ncase 8");
flag=8;
}
else
{ /* case 7 */
Backward1();Backward1();Backward1();
SendOneLine(0);
flag=7;
}
}
else if((bEnable_h==1) && (g_wea_i._bit.enable==0))/* enable falling_dedge;*/
{
bFinish=Forward1(); /*case 1*/
SendOneLine(0);
if(bFinish)
{
printf("\nJob_List has been finished\n");
bSendData=0;
}
}
else if((bEnable_h==0) && (g_wea_i._bit.enable==1)) /*enable rising_edge fast=1*/
SendControl(g_wea_i._bit.backwd,g_wea_i._bit.shutle);
break;
case 8:
if((bEnable_h==1) && (g_wea_i._bit.enable==0))/* enable falling_dedge;*/
{
Backward1(); /* case 3*/
SendOneLine(0);
flag=3;
}
break;
case 3:
if((bBackwd_h==0) && (g_wea_i._bit.backwd==1)) /*backword rising_edge*/
{
Forward1();Forward1(); /* case 11*/
SendOneLine(0);
flag=0;
if(bDataErr==1)
{
Forward1();
bSendData=0;
StopRun();
}
}
break;
case 7:
if((bBackwd_h==0) && (g_wea_i._bit.backwd==1))/* backward rising_dedge;*/
{
Forward1();Forward1();Forward1(); /* case 14 */
SendOneLine(0);
flag=0;
if(bDataErr==1)
{
Forward1();
bSendData=0;
StopRun();
}
break;
}
if((bEnable_h==1) && (g_wea_i._bit.enable==0))/*enable falling_dedge;*/
{
if(bFirstBack==1)
{
bFirstBack=0;
if(g_wea_i._bit.wo_brk==0)
{
Backward1(); /* case 5*/
SendOneLine(0);
flag=5;
break;
}
}
Backward1(); Backward1(); /*case 2*/
SendOneLine(0);
flag=2;
}
break;
case 2:
if((bBackwd_h==0) && (g_wea_i._bit.backwd==1)) /*backword rising_edge*/
{
Forward1(); Forward1();Forward1(); Forward1(); /* case 10*/
SendOneLine(0);
flag=0;
if(bDataErr==1)
{
Forward1();
bSendData=0;
StopRun();
}
}
break;
case 5:
if((g_wea_i._bit.enable==0) && (bEnable_h==1)) /* enable falling_edge*/
{
Backward1(); /* case 6 */
SendOneLine(0);
flag=6;
break;
}
if((g_wea_i._bit.shutle==0) && (bShutle_h==1))/* shutle falling_edge */
{
Forward1(); /* case 9 */
SendOneLine(1);
flag=9;
}
break;
case 6:
if((bBackwd_h==0) && (g_wea_i._bit.backwd==1)) /*backword rising_edge*/
{
Forward1();Forward1();Forward1(); /* case 14 */
SendOneLine(0);
g_bWoofFinish=1;
flag=0;
}
break;
case 9:
if((bEnable_h==1) && (g_wea_i._bit.enable==0))/* enable falling_dedge;*/
{
Backward1(); /* case 4*/
SendOneLine(0);
flag=4;
}
break;
case 4:
if((bBackwd_h==0) && (g_wea_i._bit.backwd==1)) /*backword rising_edge*/
{
Forward1();Forward1(); /*case 12*/
SendOneLine(0);
g_bWoofFinish=1;
printf("\ncase 12");
flag=0;
}
break;
default:
printf("\nunkown case, flag=%d\n",flag);
break;
}
if((bEnable_h==0) && (g_wea_i._bit.enable==1)) /*enable rising_edge */
{
SendControl(g_wea_i._bit.backwd,g_wea_i._bit.shutle);
}
if((g_wea_i._bit.wo_brk==0) && (bWobrk_h==1)) /*woof_break falling_edge*/
bFirstBack=1;
if((bCheckOK==FALSE) && (g_bDataLock==1))
{
if(flag==0)
{
Forward1();
bSendData=0;
StopRun();
}
else
bDataErr=1;
}
bEnable_h=g_wea_i._bit.enable;
bBackwd_h=g_wea_i._bit.backwd;
bWobrk_h=g_wea_i._bit.wo_brk;
bShutle_h=g_wea_i._bit.shutle;
DelayMs(1);
} //while(bSendData);
StopRun();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -