📄 yaan.c
字号:
#include "reg52.h"
#include "main.h"
#include "intrins.h"
extern Uchar CamAddress;
extern Uchar AuxNumb;
extern Uchar U_DTemp;
extern Uchar L_RTemp;
extern Uchar KeyValue;
extern Uchar TimeValue;
extern void send_char_com (unsigned char ch);
extern void shortdelay(unsigned char count);
Uchar code My_Array2[4]={0x04,0x08,0x02,0x01};
Uchar code My_Array3[]={0x01,0x02,0x80,0x40,0x20,0x10};
void YAAN (Uchar i)
{
Uint k=0;
Uchar tbuf[12];
Uchar Temp;
Uchar V_Rate;
Uchar H_Rate;
RT_CON=1;
Temp=i;
Code_Led=1;
if(U_DTemp>=0x80)
V_Rate=2*(U_DTemp-0x81);
else
V_Rate=2*(0x7F-U_DTemp);
if(L_RTemp>=0x80)
H_Rate=2*(L_RTemp-0x81);
else
H_Rate=2*(0x7F-L_RTemp);
/*---------------------------云台控制--------------------------------------*/
if(Temp<4 || Temp==22)
{
tbuf[0]=0x02;
tbuf[1]=CamAddress;
tbuf[2]=0x01;
if(Temp<4)
tbuf[3]=My_Array2[Temp];
else
tbuf[3]=0x00;
tbuf[4]=0x00;
tbuf[5]=tbuf[0]+tbuf[1]+tbuf[2]+tbuf[3]+tbuf[4];
tbuf[6]=0x02;
tbuf[7]=CamAddress;
tbuf[8]=0x0E;
if(Temp<2)
{
tbuf[9]=0x00;
tbuf[10]=V_Rate;
}
else
{
if(Temp!=22)
tbuf[9]=H_Rate;
else
tbuf[9]=0x00;
tbuf[10]=0x00;
}
tbuf[11]=tbuf[6]+tbuf[7]+tbuf[8]+tbuf[9]+tbuf[10];
do
{
send_char_com(tbuf[k]);
shortdelay(1);
k++;
} while( k<12 );
}
/*-------------------------镜头控制--------------------------------------*/
if(Temp>=4 && Temp<10)
{
tbuf[0]=0x02;
tbuf[1]=CamAddress;
tbuf[2]=0x01;
if(Temp==4 || Temp==5)
{
tbuf[3]=0x00;
tbuf[4]=My_Array3[Temp-4];
}
else
{
tbuf[3]=My_Array3[Temp-4];
tbuf[4]=0x00;
}
tbuf[5]=tbuf[0]+tbuf[1]+tbuf[2]+tbuf[3]+tbuf[4];
do
{
send_char_com(tbuf[k]);
shortdelay(1);
k++;
} while( k<6 );
}
/*--------------------------------------------------------------------------------------*/
if(Temp>22 && Temp<29)
{
tbuf[0]=0x02;
tbuf[1]=CamAddress;
switch(Temp)
{
case 23:tbuf[2]=0x05; //保存预置点
tbuf[3]=KeyValue;
break;
case 24:tbuf[2]=0x02; //调用预置点
tbuf[3]=KeyValue;
break;
case 25:tbuf[2]=0x08; //清除巡航点
tbuf[3]=0x00;
break;
case 26:tbuf[2]=0x03; //自动巡航
tbuf[3]=0x00;
break;
case 27:tbuf[2]=0x06; //添加巡航点
tbuf[3]=KeyValue;
break;
case 28:tbuf[2]=0x0B; //设置巡航停留时间
tbuf[3]=TimeValue;
break;
default:break;
}
tbuf[4]=tbuf[0]+tbuf[1]+tbuf[2]+tbuf[3];
do
{
send_char_com(tbuf[k]);
shortdelay(1);
k++;
} while( k<5 );
}
/*--------------------------------------------------------------------------------------*/
if(Temp>28 ||Temp==16 || Temp==17)
{
tbuf[0]=0x02;
tbuf[1]=CamAddress;
tbuf[2]=0x0f;
switch(Temp)
{
case 16:tbuf[3]=0x03; //云台自动
tbuf[4]=0x00;
break;
case 17:break;
case 29:tbuf[3]=0x01; //水平自动速度
tbuf[4]=TimeValue;
break;
case 30:tbuf[3]=0x02; //设定左边界
tbuf[4]=0x01;
break;
case 31:tbuf[3]=0x02; //设定右边界
tbuf[4]=0x02;
break;
default:break;
}
tbuf[5]=tbuf[0]+tbuf[1]+tbuf[2]+tbuf[3]+tbuf[4];
do
{
send_char_com(tbuf[k]);
shortdelay(1);
k++;
} while( k<6);
}
/*--------------------------------------------------------------------------------------*/
RT_CON=0;
Code_Led=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -