📄 text1.c
字号:
/****************************************************************************
*
* File: project.c
* Project: name
* Author(s): author
* Date: 22.01.2002
*
* Description: description
*
* Copyright (C) 2001 by your company
* your address
*
*
****************************************************************************/
/* include files ************************************************************/
#include "conv.h" /* Definition of hardware independend data types */
#include "koptotos.h" /* API-Function declarations */
#include "vartab.h" /* Variable Table definition */
/* include this file in every C-Source to access */
/* the variable table of your project */
/* vartab.h is generated automatically */
/* macro definitions ********************************************************/
/* type definitions *********************************************************/
/* local prototypes *********************************************************/
/* global constants *********************************************************/
/* global variables *********************************************************/
/* local constants *********************************************************/
/* local variables *********************************************************/
/* functions *********************************************************/
int page,a1;
long int i=0, j=0, n1=0, n2=0, n3=0, n4=0, n5=0;
long int par0, par1, par2, par3, par4, par5, par6, par7, par8, par9;
long int par10, par11,par12,par13,par14,par15,par16,par17,par18,par19;
long int par20, par21,par22,par23,par24,par25,par26,par27,par28,par29;
long int par30, par31,par32,par33,par34,par35,par36,par37,par38,par39;
long int pass1,pass2,pass3,pass4,pass5,pass6;
/****************************************************************************
KOP Initialisation
****************************************************************************/
int KOP_Init(void)
{
/* Enter your device startup code here ... */
CANEnableRxId(0,0x184);
CANEnableRxId(0,0x284);
CANEnableRxId(0,0x384);
CANEnableRxId(0,0x484);
CANEnableRxId(0,0x185);
CANEnableRxId(0,0x285);
CANEnableRxId(0,0x385);
CANEnableRxId(0,0x485);
/* The return value is the interval of KOP-Timer in steps of 10 ms */
/* Returning 0 disables the function KOP_Timer */
return 10;
}
/****************************************************************************
KOP cyclic part
****************************************************************************/
void KOP_Cycle(void)
{ uint8 D0,D1,D2,D3,D4,D5,D6,D7;
//只显示
SetVar(m_engine_speed,par0); SetVar(m_engine_tem,par1);
SetVar(m_engine_oil,par2); SetVar(m_oil_press,par3);
SetVar(piece_left,par4); SetVar(piece_right,par5);
SetVar(deep_set_left,par6); SetVar(deep_set_right,par7);
SetVar(deep_left,par6); SetVar(deep_right,par7);
SetVar(memory_left,par8); SetVar(memory_right,par9);
SetVar(state,par10); SetVar(engine_speed,0);
SetVar(voltage,par38);
if (par12==1) { if (n2<40) {n2=n2++; } else {n2=0;}
if (n2<20) {SetVar(engine_tem,0);} else {SetVar(engine_tem,1);}
} else {SetVar(engine_tem,0); n2=0;}
if (par13==1) { if (n3<40) {n3=n3++; } else {n3=0;}
if (n3<20) {SetVar(engine_oil,0);} else {SetVar(engine_oil,1);}
} else {SetVar(engine_oil,0); n3=0;}
if (par14==1) { if (n4<40) {n4=n4++; } else {n4=0;}
if (n4<20) {SetVar(oil_press,0);} else {SetVar(oil_press,1);}
} else {SetVar(oil_press,0); n4=0;}
if (par15==1) { if (n5<40) {n5=n5++; } else {n5=0;}
if (n5<20) {SetVar(alarm,0);} else {SetVar(alarm,1);}
} else {SetVar(alarm,0); n5=0;}
// 端子状态
SetVar(hang_up,par16); SetVar(left_rise,par17); SetVar(left_fall,par18);
SetVar(right_rise,par19);SetVar(right_fall,par20); SetVar(left_right_rise,par21);
SetVar(left_right_fall,par22); SetVar(height_adjust_left,par23);
SetVar(height_adjust_right,par24);SetVar(unload_valve,par25);
SetVar(left_distaff, par32); SetVar(right_distaff ,par33);
SetVar(pwm_left_rise,par34); SetVar(pwm_left_fall,par35);
SetVar(pwm_right_rise,par36); SetVar(pwm_right_fall,par37);
//页面选择
page=GetCurrentPageShown();
switch (page)
{
case 0 : //主界面
a1=0 ;
SetVar(password,0); SetVar(password1,0); SetVar(password2,0); SetVar(password3,0);
if (IsKeyPressedNew(2)){ PrioPageOff(0); PrioPageOn(1); }
if (IsKeyPressedNew(3)){ PrioPageOff(0); PrioPageOn(4); }
if (IsKeyPressedNew(4)){ PrioPageOff(0); PrioPageOn(5); }
SendCANTelegram(0x488,8,0,0,0,0,0,0,0,0);
break;
case 1 : //找平界面
if (IsKeyPressedNew(2)){ PrioPageOff(1); PrioPageOn(0);
SendCANTelegram(0x288,8,0x64,0,0,0,0,0,0,0);}
if (IsKeyPressedNew(3)){ PrioPageOff(1); PrioPageOn(3); }
if (IsKeyPressedNew(4)){ PrioPageOff(1); PrioPageOn(2); }
SendCANTelegram(0x488,8,0,0,0,0,0,0,0,0);
break;
case 2 : //清零界面
if (IsKeyDown(2)){SetVar(left_zero,1); SendCANTelegram(0x388,8,0x64,0,0,0,0,0,0,0); }
else {SetVar(left_zero,0); SendCANTelegram(0x388,8,0,0,0,0,0,0,0,0);}
if (IsKeyDown(3)){SetVar(right_zero,1); SendCANTelegram(0x388,8,0,0,0x64,0,0,0,0,0); }
else {SetVar(right_zero,0); SendCANTelegram(0x388,8,0,0,0,0,0,0,0,0);}
if (IsKeyPressedNew(4)){ PrioPageOff(2); PrioPageOn(1); }
break;
case 3 : //自动找平界面
if (IsKeyPressedNew(2)){ SendCANTelegram(0x288,8,0,0,0x64,0,0,0,0,0); }
if (IsKeyPressedNew(3)){ }
if (IsKeyPressedNew(4)){ PrioPageOff(3); PrioPageOn(0); }
//参数修改
a1=a1+1;
if (a1<20)
{ SetVar(left_deep_set,par6);
SetVar(right_deep_set,par7);
}
if (a1>25)
{ SendCANTelegram(0x488,8,0,0,0,0,0,0,11,11);
pass1=GetVar(left_deep_set);
pass2=GetVar(right_deep_set);
D0=pass1%256;D1=pass1/256;
D2=pass2%256;D3=pass2/256;
SendCANTelegram(0x188,8,D0,D1,D2,D3,D4,D5,D6,D7);
a1=45; }
break;
case 4 : //参数显示界面
if (IsKeyPressedNew(2)){ }
if (IsKeyPressedNew(3)){ }
if (IsKeyPressedNew(4)){ PrioPageOff(4); PrioPageOn(0); }
break;
case 5 : //密码界面
if (IsKeyPressedNew(2)){ PrioPageOff(5); PrioPageOn(7); }
if (IsKeyPressedNew(3)&& GetVar(password)==1 && GetVar(password1)==2&& GetVar(password2)==3&& GetVar(password3)==4) //密码设定
{PrioPageOff(5); PrioPageOn(9); }
if (IsKeyPressedNew(4)){ PrioPageOff(5); PrioPageOn(0); }
break;
case 6 : //参数标定界面
break;
case 7 : //密码跳转界面 输入端子状态
SetVar(password,0);SetVar(password1,0); SetVar(password2,0); SetVar(password3,0);
if (IsKeyPressedNew(4)){ PrioPageOff(7); PrioPageOn(8); }
break;
case 8 : //高级界面 输出端子状态
if (IsKeyPressedNew(3)){ PrioPageOff(8); PrioPageOn(7); }
if (IsKeyPressedNew(4)){ PrioPageOff(8); PrioPageOn(0); }
break;
case 9 : //调试界面
if (IsKeyPressedNew(2)){ PrioPageOff(9); PrioPageOn(10); }
if (IsKeyPressedNew(3)){ PrioPageOff(9); PrioPageOn(11); }
if (IsKeyPressedNew(4)){ PrioPageOff(9); PrioPageOn(0); }
break;
case 10 : //转速锁界面
SendCANTelegram(0x488,8,0,0,0,0,0,0,22,22);
if (IsKeyPressedNew(2)){ SendCANTelegram(0x189,8,0x64,0,0,0,0,0,0,0); }
if (IsKeyPressedNew(3)){ SendCANTelegram(0x189,8,0x96,0,0,0,0,0,0,0); }
if (IsKeyPressedNew(4)){ PrioPageOff(10); PrioPageOn(0); }
break;
case 11 : //参数标定界面
if (IsKeyPressedNew(2)){ }
if (IsKeyPressedNew(3)){ }
if (IsKeyPressedNew(4)){ PrioPageOff(11); PrioPageOn(0); }
break;
}
/* Enter your cyclic code here */
}
/****************************************************************************
KOP timer process
****************************************************************************/
void KOP_Timer(void)
{ if (j<50)
{j=j++;}
else
{j=100;}
if (j<5)
{PrioPageOff(0);PrioPageOn(15);}
if (j==20)
{PrioPageOff(15);PrioPageOn(0);}
/* Enter your time critical code here */
/* Be aware that the execution time must not exceed the timer interval */
}
/****************************************************************************
KOP CAN Interrupt
****************************************************************************/
void KOP_CAN_Event(uint32 RxId, int len, uint8 D0, uint8 D1, uint8 D2, uint8 D3,
uint8 D4, uint8 D5, uint8 D6, uint8 D7)
{
long int temp, temp0,temp1,temp2,temp3;
if (RxId==0x184)
{temp=D1;
par0=D0+temp*256;
temp=D3;
par1=D2+temp*256;
temp=D5;
par2=D4+temp*256;
temp=D7;
par3=D6+temp*256;
}
if (RxId==0x284)
{ temp=D1;
par4=D0+temp*256;
temp=D3;
par5=D2+temp*256;
temp=D5;
par6=D4+temp*256;
temp=D7;
par7=D6+temp*256;
}
if (RxId==0x384)
{ temp=D1;
par8=D0+temp*256;
temp=D3;
par9=D2+temp*256;
temp0=D4;
par10=temp0>>0&00000001;
par11=temp0>>1&001;
par12=temp0>>2&001;
par13=temp0>>3&001;
par14=temp0>>4&001;
par15=temp0>>5&001;
par16=temp0>>6&001;
par17=temp0>>7&001;
temp1=D5;
par18=temp1>>0&001;
par19=temp1>>1&001;
par20=temp1>>2&001;
par21=temp1>>3&001;
par22=temp1>>4&001;
par23=temp1>>5&001;
par24=temp1>>6&001;
par25=temp1>>7&001;
}
if (RxId==0x484)
{temp=D1;
par32=D0+temp*256;
temp=D3;
par33=D2+temp*256;
temp=D5;
par34=D4+temp*256;
temp=D7;
par35=D6+temp*256;
}
if (RxId==0x185)
{
temp=D1;
par36 =D0+temp*256;
temp=D3;
par37 =D2+temp*256;
temp=D5;
par38 =D4+temp*256;
}
/* Enter fast direct reactions on a CAN message here */
/* Be aware that code programmed here does not lock up the system */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -