?? main.c
字號:
newkey = 0;
}
}
else
{
COM8279=0xC2;
}
}
else
{
newkey = 1;
}
}
}
//秒定時中斷
void mysecondtask(void *lcndata) reentrant
{
lcndata=lcndata;
while(1)
{
bSecond=1;
getconut();
OSTimeDly(OS_TICKS_PER_SEC);
}
}
void showmain1() reentrant
{
clssed(SAD1);
clssed(SAD2);
rectangle(SAD2,0,222,319,239,1);
readtimer(disstr,1);
myprintf(SAD1,TA_LEFT,186,223,disstr);
myprintf(SAD1,TA_LEFT,2,223,"選功能.修改輸出值");
liney(SAD1,0,0,220);
liney(SAD1,319,0,220);
linex(SAD1,0,0,319);
linex(SAD1,220,0,319);
myprintf(SAD1,TA_LEFT,8,2, "AD0:%4u:%6.3fV",adtemp[0],result[0]);
myprintf(SAD1,TA_LEFT,8,22, "AD1:%4u:%6.3fV",adtemp[1],result[1]);
myprintf(SAD1,TA_LEFT,8,42, "AD2:%4u:%6.3fV",adtemp[2],result[2]);
myprintf(SAD1,TA_LEFT,8,62, "AD3:%4u:%6.3fV",adtemp[3],result[3]);
myprintf(SAD1,TA_LEFT,8,82, "AD4:%4u:%6.3fV",adtemp[4],result[4]);
myprintf(SAD1,TA_LEFT,8,102,"AD5:%4u:%6.3fV",adtemp[5],result[5]);
myprintf(SAD1,TA_LEFT,8,122,"AD6:%4u:%6.3fV",adtemp[6],result[6]);
myprintf(SAD1,TA_LEFT,8,142,"AD7:%4u:%6.3fV",adtemp[7],result[7]);
getstr8255();
myprintf(SAD1,TA_LEFT,168,162,"OUT8255A:%s",do8255a);
myprintf(SAD1,TA_LEFT,168,182,"OUT8255B:%s",do8255b);
myprintf(SAD1,TA_LEFT,168,202,"OUT8255C:%s",do8255c);
myprintf(SAD1,TA_LEFT,8,162,"IN8255A:%s",do8255a);
myprintf(SAD1,TA_LEFT,8,182,"IN8255B:%s",do8255b);
myprintf(SAD1,TA_LEFT,8,202,"IN8255C:%s",do8255c);
myprintf(SAD1,TA_LEFT,168,2, "82530:%5u",count8253[0][0]);
myprintf(SAD1,TA_LEFT,168,22, "82531:%5u",count8253[1][0]);
myprintf(SAD1,TA_LEFT,168,42, "82532:%5u",count8253[2][0]);
myprintf(SAD1,TA_LEFT,168,62, "T0 :%5u",count8253[3][0]);
if(ok24c02 == 0)
myprintf(SAD1,TA_LEFT,168,82, "24C02:讀寫錯誤");
else
myprintf(SAD1,TA_LEFT,168,82, "24C02:讀寫正常");
myprintf(SAD1,TA_LEFT,168,102,"485IN:%02XH:%c",(unsigned int)rs485in,rs485in);
myprintf(SAD1,TA_LEFT,168,122,"485OU:");
vda667 = da667;
vda667 /=409.5;
myprintf(SAD1,TA_LEFT,168,142, "DA667:%4u:%6.3fV",da667,vda667);
liney(SAD1,160,120,220);
linex(SAD1,120,160,319);
}
void getstr8255() reentrant
{
if(a1)
do8255a[0] = '1';
else
do8255a[0] = '0';
if(a2)
do8255a[1] = '1';
else
do8255a[1] = '0';
if(a3)
do8255a[2] = '1';
else
do8255a[2] = '0';
if(a4)
do8255a[3] = '1';
else
do8255a[3] = '0';
if(a5)
do8255a[4] = '1';
else
do8255a[4] = '0';
if(a6)
do8255a[5] = '1';
else
do8255a[5] = '0';
if(a7)
do8255a[6] = '1';
else
do8255a[6] = '0';
if(a8)
do8255a[7] = '1';
else
do8255a[7] = '0';
if(b1)
do8255b[0] = '1';
else
do8255b[0] = '0';
if(b2)
do8255b[1] = '1';
else
do8255b[1] = '0';
if(b3)
do8255b[2] = '1';
else
do8255b[2] = '0';
if(b4)
do8255b[3] = '1';
else
do8255b[3] = '0';
if(b5)
do8255b[4] = '1';
else
do8255b[4] = '0';
if(b6)
do8255b[5] = '1';
else
do8255b[5] = '0';
if(b7)
do8255b[6] = '1';
else
do8255b[6] = '0';
if(b8)
do8255b[7] = '1';
else
do8255b[7] = '0';
if(c1)
do8255c[0] = '1';
else
do8255c[0] = '0';
if(c2)
do8255c[1] = '1';
else
do8255c[1] = '0';
if(c3)
do8255c[2] = '1';
else
do8255c[2] = '0';
if(c4)
do8255c[3] = '1';
else
do8255c[3] = '0';
if(c5)
do8255c[4] = '1';
else
do8255c[4] = '0';
if(c6)
do8255c[5] = '1';
else
do8255c[5] = '0';
if(c7)
do8255c[6] = '1';
else
do8255c[6] = '0';
if(c8)
do8255c[7] = '1';
else
do8255c[7] = '0';
do8255a[8] = 0;
do8255b[8] = 0;
do8255c[8] = 0;
}
void showvaultall() reentrant
{
switch(buttonselect)
{
case 0:
myprintf(SAD1,TA_LEFT,40,2, "%4u:%6.3fV",adtemp[0],result[0]);
break;
case 1:
myprintf(SAD1,TA_LEFT,40,22, "%4u:%6.3fV",adtemp[1],result[1]);
break;
case 2:
myprintf(SAD1,TA_LEFT,40,42, "%4u:%6.3fV",adtemp[2],result[2]);
break;
case 3:
myprintf(SAD1,TA_LEFT,40,62, "%4u:%6.3fV",adtemp[3],result[3]);
break;
case 4:
myprintf(SAD1,TA_LEFT,40,82, "%4u:%6.3fV",adtemp[4],result[4]);
break;
case 5:
myprintf(SAD1,TA_LEFT,40,102,"%4u:%6.3fV",adtemp[5],result[5]);
break;
case 6:
myprintf(SAD1,TA_LEFT,40,122,"%4u:%6.3fV",adtemp[6],result[6]);
break;
case 7:
myprintf(SAD1,TA_LEFT,40,142,"%4u:%6.3fV",adtemp[7],result[7]);
break;
case 16:
myprintf(SAD1,TA_LEFT,216,102,"%02XH:%c",(unsigned int)rs485in,rs485in);
break;
case 18:
myprintf(SAD1,TA_LEFT,216,142, "%4u:%6.3fV",da667,vda667);
break;
case 19:
getstr8255();
myprintf(SAD1,TA_LEFT,240,162,"%8s",do8255a);
break;
case 20:
getstr8255();
myprintf(SAD1,TA_LEFT,240,182,"%8s",do8255b);
break;
case 21:
getstr8255();
myprintf(SAD1,TA_LEFT,240,202,"%8s",do8255c);
break;
case 8:
case 9:
case 10:
EA = 0;
COM8255=0x9B;
tem8255a = A8255;
tem8255b = B8255;
tem8255c = C8255;
EA = 1;
getstr8255();
myprintf(SAD1,TA_LEFT,72,162,"%s",do8255a);
myprintf(SAD1,TA_LEFT,72,182,"%s",do8255b);
myprintf(SAD1,TA_LEFT,72,202,"%s",do8255c);
break;
default:
break;
}
}
void showselect(unsigned char select,unsigned char fill)
{
if(fill == 0)
rectangle(SAD2,6+(select/11)*160,2+(select%11)*20,150+(select/11)*160,19+(select%11)*20,0);
else
rectangle(SAD2,6+(select/11)*160,2+(select%11)*20,150+(select/11)*160,19+(select%11)*20,1);
}
void doinput() reentrant
{
unsigned char h,l;
switch(buttonselect)
{
case 17://RS485out
if(getstr(216,122,8))
{
h = 0;
while(disstr[h] != 0)
{
rs485out = disstr[h];
bout485 = 1;
RS485 = 0;
TI = 1;
OSTimeDly(2);
h++;
}
}
break;
case 18://AD667
if(getstrnumber(216,142,4))
{
da667 = (unsigned int)atoi(disstr);
if(da667>4095)
da667 = 4095;
l=da667%16;
l=l*16;
h=(unsigned char)(da667/16);
LDA667=l;
HDA667=h;
vda667 = da667;
vda667 /=409.5;
}
break;
case 19:
if(getstr(240,162,8))
{
tem8255a = 0;
for(h=0;h<8;h++)
{
tem8255a *= 2;
if(disstr[7-h] == '1')
tem8255a |= 0x01;
}
EA = 0;
COM8255=0x80;
A8255 = tem8255a;
B8255 = tem8255b;
C8255 = tem8255c;
EA = 1;
}
break;
case 20:
if(getstr(240,182,8))
{
tem8255b = 0;
for(h=0;h<8;h++)
{
tem8255b *= 2;
if(disstr[7-h] == '1')
tem8255b |= 0x01;
}
EA = 0;
COM8255=0x80;
A8255 = tem8255a;
B8255 = tem8255b;
C8255 = tem8255c;
EA = 1;
}
break;
case 21:
if(getstr(240,202,8))
{
tem8255c = 0;
for(h=0;h<8;h++)
{
tem8255c *= 2;
if(disstr[7-h] == '1')
tem8255c |= 0x01;
}
EA = 0;
COM8255=0x80;
A8255 = tem8255a;
B8255 = tem8255b;
C8255 = tem8255c;
EA = 1;
}
break;
default:
setsysini();
showmain1();
break;
}
}
//電磁接觸器檢測
void main1test(void *lcnpdata) reentrant
{
unsigned char curstaut = 0;
buttonselect=0;
lcnpdata = lcnpdata;
showmain1();
showselect(buttonselect,1);
while(1)
{
OSSemPend(KeySem,10,&lcnerr);
if(lcnerr==OS_NO_ERR)
{
switch(key)
{
case INPUT://系統參數
doinput();
showselect(buttonselect,1);
break;
case DOWN:
showselect(buttonselect,0);
if(buttonselect < 21)
{
buttonselect++;
}
else
{
buttonselect=0;
}
showselect(buttonselect,1);
break;
case UP:
showselect(buttonselect,0);
if(buttonselect > 0)
buttonselect--;
else
buttonselect=21;
showselect(buttonselect,1);
break;
case LEFT:
case RIGHT:
showselect(buttonselect,0);
if(buttonselect > 10)
buttonselect-=11;
else
buttonselect+=11;
showselect(buttonselect,1);
break;
default:
break;
}
}
getcurvault();
showvaultall();
if(bSecond)
{
bSecond=0;
myprintf(SAD1,TA_LEFT,216,2, "%5u",count8253[0][0]);
myprintf(SAD1,TA_LEFT,216,22, "%5u",count8253[1][0]);
myprintf(SAD1,TA_LEFT,216,42, "%5u",count8253[2][0]);
myprintf(SAD1,TA_LEFT,216,62, "%5u",count8253[3][0]);
#if OS_TASK_STAT_EN
myprintf(SAD1,TA_LEFT,295,2,"%3u",(unsigned int)OSCPUUsage);
#endif
readtimer(disstr,0);
myprintf(SAD1,TA_LEFT,254,223,disstr);
}
}
}
void getcurvault() reentrant
{
if(buttonselect>7)
return;
getad();
adtemp[adtemp1] = advaut;
switch(buttonselect)
{
case 1:
ADNUMBER1=0;
ADNUMBER2=1;
ADNUMBER3=1;
adtemp1=1;
break;
case 2:
ADNUMBER1=1;
ADNUMBER2=0;
ADNUMBER3=1;
adtemp1=2;
break;
case 3:
ADNUMBER1=0;
ADNUMBER2=0;
ADNUMBER3=1;
adtemp1=3;
break;
case 4:
ADNUMBER1=1;
ADNUMBER2=1;
ADNUMBER3=0;
adtemp1=4;
break;
case 5:
ADNUMBER1=0;
ADNUMBER2=1;
ADNUMBER3=0;
adtemp1=5;
break;
case 6:
ADNUMBER1=1;
ADNUMBER2=0;
ADNUMBER3=0;
adtemp1=6;
break;
case 7:
ADNUMBER1=0;
ADNUMBER2=0;
ADNUMBER3=0;
adtemp1=7;
break;
case 0:
ADNUMBER1=1;
ADNUMBER2=1;
ADNUMBER3=1;
adtemp1=0;
break;
default:
break;
}
result[adtemp1] = adtemp[adtemp1];
result[adtemp1] /= 409.5; //10V
}
void main (void)
{
OSInit();
InitTimer2();
OSTaskCreate(sys_init, (void *)0, &sys_init_Stk[0],1);
OSStart();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -