📄 f020.c
字号:
//AIN03_ADDR[2]=0x08;//AIN0.3 存储区域0x060000~0x07FFFF共128K
}
}
ET0=1;
TR0=1;
}//end if m3>0x03FF
if(n3>0X13FF)//地址注意之处
{
TR0=0;
ET0=0;
n3=0x1300;//AIN1.3缓存区首地址
switch (first_flag13)
{
case 0X00: Read_Data_T0_Flash (AIN13_ADDR[0],AIN13_ADDR[1],0x08,n3+8,248);
AIN13_ADDR[1]++;
//AIN13_ADDR[2]=0x00;
first_flag13=1;
break;
case 0X01: Read_Data_T0_Flash (AIN13_ADDR[0],AIN13_ADDR[1],0x00,n3,256);
AIN13_ADDR[1]++;
//AIN13_ADDR[2]=0x00;
break;
default:break;
}
if(AIN13_ADDR[1]>255)
{
AIN13_ADDR[1]=0x00;
//AIN13_ADDR[2]=0x00;
AIN13_ADDR[0]++;
if( AIN13_ADDR[0]>=0X18)//存储区域0x160000~0x17FFFF共128K
{
FLASH_SE(0x16,0x00,0x00);
FLASH_SE(0x17,0x00,0x00);
first_flag13=0;
Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x16,0x00,0x00,0x13);//通道AIN1。3
AIN13_ADDR[0]=0x16;
AIN13_ADDR[1]=0x00;
//AIN13_ADDR[2]=0x08;//AIN1.3 存储区域0x160000~0x17FFFF共128K
}
}
ET0=1;
TR0=1;
}//end if n3>0x13FF
/*****************AIN03************************************/
/***信号Nist*******/
/***射控驱动器速度实际***/
/***电压范围0~15V*****/
/*****阀值0.5V*****/
/*******还原算法Xn*9.4922*11********/
/**AIN0.3 存储区域0x060000~0x07FFFF共128K*/
last_xn=x[0x2300];//AIN0.3上次值缓存
AMX0SL = 0x03;//AIN0.3 //AIN00-AIN07->0X00-0X07
AD0INT = 0; // 清除ADC转换完成标志
AD0BUSY = 1;
while (!AD0INT);
Delay_us(5);
current_xn= ADC0H;
Temp_AD=abs(current_xn-last_xn);
x[0x2300]= current_xn;
if(Temp_AD>=B)//阀值设定
{
if(timepoint>253)
{
x[m3-2]=current_xn;
//m3++;
x[m3-1]=0XFE;
//m3++;
}
else
{
x[m3]=current_xn;
m3++;
x[m3]=timepoint;
m3++;
}
if(m3>0X03FF)//地址注意之处
{
TR0=0;
ET0=0;
m3=0x0300;//AIN0.3缓存区首地址
switch (first_flag03)
{
case 0X00: Read_Data_T0_Flash (AIN03_ADDR[0],AIN03_ADDR[1],0x08,m3+8,248);
AIN03_ADDR[1]++;
//AIN03_ADDR[2]=0x00;
first_flag03=1;
break;
case 0X01: Read_Data_T0_Flash (AIN03_ADDR[0],AIN03_ADDR[1],0x00,m3,256);
AIN03_ADDR[1]++;
//AIN03_ADDR[2]=0x00;
break;
default:break;
}
if(AIN03_ADDR[1]>255)
{
AIN03_ADDR[1]=0x00;
//AIN03_ADDR[2]=0x00;
AIN03_ADDR[0]++;
if( AIN03_ADDR[0]>=0x08)
{
FLASH_SE(0x06,0x00,0x00);
FLASH_SE(0x07,0x00,0x00);
first_flag03=0;
Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x06,0x00,0x00,0x03);//通道AIN0。3
AIN03_ADDR[0]=0x06;
AIN03_ADDR[1]=0x00;
//AIN03_ADDR[2]=0x08;//AIN0.3 存储区域0x060000~0x07FFFF共128K
}
}
ET0=1;
TR0=1;
}//end if m3>0X03FF
}//end if Temp_AD>B
/*****************AIN13************************************/
/***信号563-1*******/
/***火控台短点射发射击开关***/
/***电压范围0~15V*****/
/*****阀值1.5V*****/
/*******还原算法Xn*9.4922*11********/
/**AIN1.3 存储区域0x160000~0x17FFFF共128K*/
last_xn=x[0x3300];//AIN1.3上次值缓存
AMX1SL=0x03;//AIN1.3
ADC1CN &= 0xDF;// 清除ADC转换完成标志 AD1INT = 0;
ADC1CN |= 0x10;// AD1BUSY = 1;
Delay_us(5);
while (!ADC1CN&0x20); //等待AD1INT=1;
current_xn=ADC1;
Temp_AD=abs(current_xn-last_xn);
x[0x3300]= current_xn;
if(Temp_AD>=A)//阀值设定
{
if(timepoint>253)
{
x[n3-2]=current_xn;
//n3++;
x[n3-1]=0XFE;
//n3++;
}
else
{
x[n3]=current_xn;
n3++;
x[n3]=timepoint;
n3++;
}
if(n3>0X13FF)//注意之处
{
TR0=0;
ET0=1;
n3=0x1300;//AIN1.3缓存区首地址
switch (first_flag13)
{
case 0X00: Read_Data_T0_Flash (AIN13_ADDR[0],AIN13_ADDR[1],0x08,n3+8,248);
AIN13_ADDR[1]++;
//AIN13_ADDR[2]=0x00;
first_flag13=1;
break;
case 0X01: Read_Data_T0_Flash (AIN13_ADDR[0],AIN13_ADDR[1],0x00,n3,256);
AIN13_ADDR[1]++;
//AIN13_ADDR[2]=0x00;
break;
default:break;
}
if(AIN13_ADDR[1]>255)
{
AIN13_ADDR[1]=0x00;
//AIN13_ADDR[2]=0x00;
AIN13_ADDR[0]++;
if( AIN13_ADDR[0]>=0X18)//存储区域0x160000~0x17FFFF共128K
{
FLASH_SE(0x16,0x00,0x00);
FLASH_SE(0x17,0x00,0x00);
first_flag13=0;
Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x16,0x00,0x00,0x13);//通道AIN1。3
AIN13_ADDR[0]=0x16;
AIN13_ADDR[1]=0x00;
//AIN13_ADDR[2]=0x08;//AIN1.3 存储区域0x160000~0x17FFFF共128K
}
}
ET0=1;
TR0=1;
}//end if n3>0x13FF
}//end if Temp_AD>A
}//end if AIN==0X04
/**********************************END AIN=0X04**********************************/
/***********************************START AIN=0X05*********************************************/
if(AIN==0X05)
{
AIN_Flag=0;
/***************************AD LONG TIME NO CHANGE****************************/
if(timepoint>253)
{
TR0=0;
ET0=0;
AMX0SL = 0x04;//AIN0.4 //AIN00-AIN07->0X00-0X07
AD0INT = 0; // 清除ADC转换完成标志
AD0BUSY = 1;
Delay_us(5);
while (!AD0INT);
current_xn = ADC0H;
x[m4]=current_xn;
m4++;
x[m4]=0xFE;
m4++;
AMX1SL=0x04;//AIN1.4
ADC1CN &= 0xDF;// 清除ADC转换完成标志 AD1INT = 0;
ADC1CN |= 0x10;// AD1BUSY = 1;
Delay_us(5);
while (!ADC1CN&0x20); //等待AD1INT=1;
current_xn=ADC1;
x[n4]=current_xn;
n4++;
x[n4]=0xFE;
n4++;
ET0=1;
TR0=1;
}
if(m4>0X04FF)
{
TR0=0;
ET0=0;
m4=0x0400;//AIN0.4缓存区首地址
switch (first_flag04)
{
case 0X00: Read_Data_T0_Flash (AIN04_ADDR[0],AIN04_ADDR[1],0x08,m4+8,248);
AIN04_ADDR[1]++;
//AIN04_ADDR[2]=0x00;
first_flag04=1;
break;
case 0X01: Read_Data_T0_Flash (AIN04_ADDR[0],AIN04_ADDR[1],0x00,m4,256);
AIN04_ADDR[1]++;
// AIN04_ADDR[2]=0x00;
break;
default:break;
}
if(AIN04_ADDR[1]>255)
{
AIN04_ADDR[1]=0x00;
//AIN04_ADDR[2]=0x00;
AIN04_ADDR[0]++;
if( AIN04_ADDR[0]>=0X0A)
{
FLASH_SE(0x08,0x00,0x00);
FLASH_SE(0x09,0x00,0x00);
first_flag04=0;
Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x08,0x00,0x00,0x04);//通道AIN0。4
AIN04_ADDR[0]=0x08;
AIN04_ADDR[1]=0x00;
//AIN04_ADDR[2]=0x08;//AIN0.4 存储区域0x080000~0x09FFFF共128K
}
}
ET0=1;
TR0=1;
}//end if m4>0x04FF
if(n4>0X14FF)//地址注意之处
{
TR0=0;
ET0=0;
n4=0x1400;//AIN1.4缓存区首地址
switch (first_flag14)
{
case 0X00: Read_Data_T0_Flash (AIN14_ADDR[0],AIN14_ADDR[1],0x08,n4+8,248);
AIN14_ADDR[1]++;
//AIN14_ADDR[2]=0x00;
first_flag14=1;
break;
case 0X01: Read_Data_T0_Flash (AIN14_ADDR[0],AIN14_ADDR[1],0x00,n4,256);
AIN14_ADDR[1]++;
// AIN14_ADDR[2]=0x00;
break;
default:break;
}
if(AIN14_ADDR[1]>255)
{
AIN14_ADDR[1]=0x00;
//AIN14_ADDR[2]=0x00;
AIN14_ADDR[0]++;
if( AIN14_ADDR[0]>=0X1A)//存储区域0x180000~0x19FFFF共128K
{
FLASH_SE(0x18,0x00,0x00);
FLASH_SE(0x19,0x00,0x00);
first_flag14=0;
Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x18,0x00,0x00,0x14);//通道AIN1。4
AIN14_ADDR[0]=0x18;
AIN14_ADDR[1]=0x00;
//AIN14_ADDR[2]=0x08;//AIN1.4 存储区域0x180000~0x19FFFF共128K
}
}
ET0=1;
TR0=1;
}//end if n4>0x14FF
/*****************AIN04************************************/
/***信号List*******/
/***射控驱动器电流实际***/
/***电压范围0~15V*****/
/*****阀值0.5V*****/
/*******还原算法Xn*9.4922*11********/
/**AIN0.4 存储区域0x080000~0x09FFFF共128K*/
last_xn=x[0x2400];//AIN0.4上次值缓存
AMX0SL = 0x04;//AIN0.4 //AIN00-AIN07->0X00-0X07
AD0INT = 0; // 清除ADC转换完成标志
AD0BUSY = 1;
Delay_us(5);
while (!AD0INT);
current_xn= ADC0H;
Temp_AD=abs(current_xn-last_xn);
x[0x2400]= current_xn;
if(Temp_AD>=B)//阀值设定
{
if(timepoint>253)
{
x[m4-2]=current_xn;
//m4++;
x[m4-1]=0XFE;
//m4++;
}
else
{
x[m4]=current_xn;
m4++;
x[m4]=timepoint;
m4++;
}
if(m4>0X04FF)//地址注意之处
{
TR0=0;
ET0=0;
m4=0x0400;//AIN0.4缓存区首地址
switch (first_flag04)
{
case 0X00: Read_Data_T0_Flash (AIN04_ADDR[0],AIN04_ADDR[1],0x08,m4+8,248);
AIN04_ADDR[1]++;
//AIN04_ADDR[2]=0x00;
first_flag04=1;
break;
case 0X01: Read_Data_T0_Flash (AIN04_ADDR[0],AIN04_ADDR[1],0x00,m4,256);
AIN04_ADDR[1]++;
//AIN04_ADDR[2]=0x00;
break;
default:break;
}
if(AIN04_ADDR[1]>255)
{
AIN04_ADDR[1]=0x00;
//AIN04_ADDR[2]=0x00;
AIN04_ADDR[0]++;
if( AIN04_ADDR[0]>=0x0A)
{
FLASH_SE(0x08,0x00,0x00);
FLASH_SE(0x09,0x00,0x00);
first_flag04=0;
Flash_Write_address (shijian_data[0],shijian_data[1],shijian_data[2],0x08,0x00,0x00,0x04);//通道AIN0。4
AIN04_ADDR[0]=0x08;
AIN04_ADDR[1]=0x00;
//AIN04_ADDR[2]=0x08;//AIN0.4 存储区域0x080000~0x09FFFF共128K
}
}
ET0=1;
TR0=1;
}//end if m4>0X04FF
}//end if Temp_AD>B
/*****************AIN14************************************/
/***信号564-1*******/
/***火控台长点射发射击开关***/
/***电压范围0~15V*****/
/*****阀值1.5V*****/
/*******还原算法Xn*9.4922*11********/
/**AIN1.4 存储区域0x180000~0x18FFFF共128K*/
last_xn=x[0x3400];//AIN1.4上次值缓存
AMX1SL=0x04;//AIN1.4
ADC1CN &= 0xDF;// 清除ADC转换完成标志 AD1INT = 0;
ADC1CN |= 0x10;// AD1BUSY = 1;
Delay_us(5);
while (!ADC1CN&0x20); //等待AD1INT=1;
current_xn=ADC1;
Temp_AD=abs(current_xn-last_xn);
x[0x3400]= current_xn;
if(Temp_AD>=A)//阀值设定
{
if(timepoint>253)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -