OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4989|回复: 8

摄像头实验请教ov7670

[复制链接]

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-12-9
在线时间
18 小时
发表于 2014-12-9 09:24:56 | 显示全部楼层 |阅读模式
5金钱
摄像头ov7670输出图像可以旋转90度在液晶屏上显示 能实现吗

最佳答案

查看完整内容[请看2#楼]

回复【2楼】正点原子: --------------------------------- 我把lcd的扫描方式改了下 就可以在lcd上90度显示了   开发板综合实验了 关于3D的有没有资料  程序有点看不懂  有没有算法
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-12-9
在线时间
18 小时
 楼主| 发表于 2014-12-9 09:24:57 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我把lcd的扫描方式改了下 就可以在lcd上90度显示了  


开发板综合实验了 关于3D的有没有资料  程序有点看不懂  有没有算法
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-9 22:47:03 | 显示全部楼层
不可以,只能旋转镜头。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-14 11:26:00 | 显示全部楼层
回复【3楼】简_单:
---------------------------------
没有算法资料
你改LCD扫描方式啊,那出来还是240*320?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-12-9
在线时间
18 小时
 楼主| 发表于 2014-12-15 09:02:17 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
是320*240的  方向改变了
回复

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-12-9
在线时间
18 小时
 楼主| 发表于 2014-12-15 09:27:28 | 显示全部楼层
回复【5楼】简_单:
---------------------------------
void t3d_pixel_transform(_t3d_obj* t3dx,u16 pixindex)
{  
signed long lsinx,lcosx,lsiny,lcosy,lsinz,lcosz;
signed long ltempx,ltempy,ltempz;
signed long ldx,ldy,ldz;    
    float tdx,tdy;//±???????2????????????,·??ò??x/y?á???á????????.   
lsinx=my_sin(t3dx->ang.x);  //arg:????   (????:0.1??)
  lcosx=my_cos(t3dx->ang.x);
lsiny=my_sin(t3dx->ang.y);
lcosy=my_cos(t3dx->ang.y);
lsinz=my_sin(t3dx->ang.z);
  lcosz=my_cos(t3dx->ang.z); //?????á×?±ê ??×?×?±ê
    //??????????×??? 
  ldx = t3dx->p3dbuf[pixindex].x;//3D????x×?±ê??
ldy = t3dx->p3dbuf[pixindex].y;
ldz = t3dx->p3dbuf[pixindex].z;
    ltempy = ldy*lcosx - ldz*lsinx;//
    ltempz = ldy*lsinx + ldz*lcosx; //
    ldy = ltempy;
    ldz = ltempz;
    ltempx = ldx*lcosy*1000 - ldz*lsiny;
    ltempz = ldx*lsiny*1000 + ldz*lcosy;
    ldx = ltempx/1000;   
    ldz = ltempz/10000;//???????ó100±????á??
    ltempx = ldx * lcosz - ldy * lsinz;
    ltempy = ldx * lsinz + ldy * lcosz;
    ldx = ltempx/100000;
    ldy = ltempy/100000;   
  tdx = ldx + t3dx->dis.x*10;
tdy = ldy + t3dx->dis.y*10;
ldz = ldz - t3dx->dis.z*100 + t3dx->offz*100;    
  t3dx->p2dbuf[pixindex].x = (((tdx-USRX)*USRZ)/ldz) + t3dx->offx;
t3dx->p2dbuf[pixindex].y = (((tdy-USRY)*USRZ)/ldz) + t3dx->offy;    
t3dx->p2dbuf[pixindex].color=t3dx->p3dbuf[pixindex].color;    
  


这里的ltempx,ltempy,ltempz;是什么的转换值
回复

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-12-9
在线时间
18 小时
 楼主| 发表于 2014-12-15 11:48:13 | 显示全部楼层
回复【6楼】简_单:
---------------------------------
    ltempy = ldy*lcosx - ldz*lsinx;// 
    ltempz = ldy*lsinx + ldz*lcosx;

ldy*lcosx这个应该就是ltempy了吧 为什么还要在减去 ldz*lsinx
回复

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-12-9
在线时间
18 小时
 楼主| 发表于 2014-12-16 08:51:39 | 显示全部楼层
回复【7楼】简_单:
--------------------------------
看明白了  这是涉及到计算机图形变换里的 算法的
回复

使用道具 举报

8

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2014-12-9
在线时间
18 小时
 楼主| 发表于 2014-12-19 11:15:43 | 显示全部楼层
u8 ageTime =0,Asdd =0;
u16 X[60]; //X?á??????×é
u16 Y[60]; //Y?á??????×é
u16 ointDataX, ointDataY;//??×?XY×?±ê

//u16 XMIN = 57; //  LCD(0,0)
//u16 YMIN = 153; 
//u16 XMAX = 985;//LCD(799,479)
//u16 YMAX = 1083;
//u16 Numx = 901;
//u16 Numy = 929;
//u16 Signlex = 1508;
//u16 Signley = 2416;
u16 XMIN = 57; //  LCD(0,0)
u16 YMIN = 153; 
u16 XMAX = 985;//LCD(799,479)  384000
u16 YMAX = 1083;
u16 Numx = 901;
u16 Numy = 929;
u16 Signlex = 1508;
u16 Signley = 2416;



u8 GetAD_XY = 0; //????±ê??,???????±,????????AD??,??1????????????AD????????
//u8 GetAD_XY = 1;
u8 AD_NO =0; //??????????????????????????????±???
u8 ADINT = 0; //??????????±ê??=0????????=1????
u8 buttonxy =0; //???é?±????±ê??
u16 NUM[2][20]; //??×?
s16 ENX =0,PENY =0; //??????????????
//u16 ENX =0,PENY =0; //??????????????
u8 EN_STATUS =255; //????×???,0??,3×ó,4??,1??,2??

//????????
u16 ADC_value_X,ADC_value_Y;
u16 X1,Y1,X2,Y2,X3,Y3,X4,Y4;
u8 TOUCHSTS = 0;
//u8 o_OR_Aj;
//u8 poAj;

extern struct BUTTONDEFINE  button1[];
extern void DelayMs(u32 nMs);
u8 Adjustdisplay(void);
void DisplayPointGet(void);
void MidValueCalculate(void);
void Access_TP_coordinate(void);
extern void Tim2_Out(void);


/**************************************************************************************************************
?????è??: ?????????ù??????
***************************************************************************************************************/
void MidValueCalculate(void)
{
if(X2>X3)
{
if(X3>X4)
X1=X3;
else
{
if(X2>X4)
X1=X4;
else
X1=X2;
}
}
else
{
if(X3<X4)
X1=X3;
else
{
if(X2><X4)
X1=X4;
else
X1=X2;
}
}

if(Y2>Y3)
{
if(Y3>Y4)
Y1=Y3;
else
{
if(Y2>Y4)
Y1=Y4;
else
Y1=Y2;
}
}
else
{
if(Y3<Y4)
Y1=Y3;
else
{
if(Y2><Y4)
Y1=Y4;
else
Y1=Y2;
}
}
ADC_value_X = X1;
ADC_value_Y = Y1;
}

void Access_TP_coordinate(void) //????AD??????
{
clear_TP_interrupt(); //????RA8875????±ê??
Waitus(220);   //???±????????  
if(Touch_Status())
{
X2 = Get_X_ADC_Value_10bit(); //????X?áAD??
Y2 = Get_Y_ADC_Value_10bit(); //????Y?áAD??
clear_TP_interrupt(); //????RA8875????±ê??
Waitus(220);   //???±????????
if(Touch_Status()) //????????±ê??
{  
X3 = Get_X_ADC_Value_10bit(); //????X?áAD??
Y3 = Get_Y_ADC_Value_10bit(); //????Y?áAD??
clear_TP_interrupt(); //????RA8875????±ê??
Waitus(220); //???±????????
if(Touch_Status()) //????????±ê??
{
X4 = Get_X_ADC_Value_10bit(); //????X?áAD??
Y4 = Get_Y_ADC_Value_10bit(); //????Y?áAD??
MidValueCalculate(); //????????,??????X1,Y1
clear_TP_interrupt(); //????RA8875????±ê??
}
else //???ù??????
{
ADC_value_X =0;
ADC_value_Y =0;
ADINT =0; //±í??????±ê????
}
}
else //???ù??????
{
ADC_value_X =0;
ADC_value_Y =0;
ADINT =0; //±í??????±ê????
}
}
else //???ù??????
{
ADC_value_X =0;
ADC_value_Y =0;
ADINT =0; //±í??????±ê????
}
}

/*********************************************************************************************************
???? ???è????×???
**********************************************************************************************************/
//void Touch_Calculate(void)
void ointshet(void)
{
u8 again =1;
u8 i,j=0,k=0;
u16 ointData[20];//????XY?áAD????
// u16 temp[24] = {25,40,40,25,25,440,40,425,745,440,760,425,745,40,760,25};//×?±ê??
u16 temp[24] = {5,20,20,5,5,240,20,225,445,240,460,225,445,20,460,5};//×?±ê??
u32 xl,xn,yl,yn,xx,yy;
do
{
clear_TP_interrupt();
LcdClear(myBLACK);//????
// LcdPrintStr("????????×?",360,150,WHITE,BLACK,1);//????×?·?
// LcdPrintStr("???÷??????????×???.?±??±???????.????×???????",225,176,WHITE,BLACK,1);//????×?·???
 RA8875DrawString(10,100,"Lcd test1",0xFFFF,0x001f);
while(ADINT){;}

        j=0;
   for(i=0;i<4;i++)
{
LcdPrintHorz(temp[j], temp[j+1]-1, 30, myWHITE); //?á?áBLACK
LcdPrintHorz(temp[j], temp[j+1],   30, myWHITE); //?á?áBLACK
LcdPrintHorz(temp[j], temp[j+1]+1, 30, myWHITE); //?á?áBLACK

LcdPrintVert(temp[j+2]-1, temp[j+3], 30, myWHITE);//?ú?áBLACK
LcdPrintVert(temp[j+2],   temp[j+3], 30, myWHITE);//?ú?áBLACK
LcdPrintVert(temp[j+2]+1, temp[j+3], 30, myWHITE);//?ú?áBLACK

GetAD_XY =1; //??AD???????ù

while(!Adjustdisplay()); //????????
PointData[k++] = ointDataX;     //????X?áAD
PointData[k++] = PointDataY;     //????Y?áAD

LcdPrintHorz(temp[j], temp[j+1]-1, 30, myBLUE); //?á?áRED
LcdPrintHorz(temp[j], temp[j+1],   30, myBLUE); //?á?áRED
LcdPrintHorz(temp[j], temp[j+1]+1, 30, myBLUE); //?á?áRED

LcdPrintVert(temp[j+2]-1, temp[j+3], 30, myBLUE);//?ú?áRED
LcdPrintVert(temp[j+2], temp[j+3],   30, myBLUE);//?ú?áRED
LcdPrintVert(temp[j+2]+1, temp[j+3], 30, myBLUE);//?ú?áRED
j+=4;
DelayMs(100);
while(ADINT);
}
// u32 xl,xn,yl,yn,xx,yy;
xl = (PointData[4]+PointData[6])/2; //X3+X4
xn = (PointData[0]+PointData[2])/2; //X1+X2
yl = (PointData[1]+PointData[7])/2; //Y1+Y4
yn = (PointData[3]+PointData[5])/2; //Y2+Y3
// Signlex = (xn*1000 - xl*1000)/720; //X?á????????AD??
// Signley = (yn*1000 - yl*1000)/400; //Y?á????????AD??
Signlex = (xn*1000 - xl*1000)/400; //X?á????????AD??
Signley = (yn*1000 - yl*1000)/192; //Y?á????????AD??
xx = (Signlex*40)/1000; //X40??AD??
yy = (Signley*40)/1000; //Y40??AD??
XMIN =xl - xx; //X?á×?????
XMAX =xn + xx; //X?á×??ó??
YMIN =yl - yy; //Y?á×?????
YMAX =yn + yy; //Y?á×??ó??
Numx =XMAX - XMIN; //?óX?á?à????
Numy =YMAX - YMIN; //?óY?á?à????

FLASH_Unlock();//????FLASH±à???????????÷
FLASH_ErasePage(0x0800EFF0);//????????FLASH????
FLASH_ProgramHalfWord(0x0800EFF0,XMIN);//?????¨???·±à??°?×?
FLASH_ProgramHalfWord(0x0800EFF2,XMAX);
FLASH_ProgramHalfWord(0x0800EFF4,YMIN);
FLASH_ProgramHalfWord(0x0800EFF6,YMAX);
FLASH_ProgramHalfWord(0x0800EFF8,Numx);
FLASH_ProgramHalfWord(0x0800EFFA,Numy);

 RA8875DrawString(10,150,"Lcd test2",0xFFFF,0x001f);
// LcdPrintStr("?????÷??????×???",336,288,WHITE,BLACK,1);//????×?·?
// LcdPrintHorz(385, 239, 30, myWHITE); //??×???
// LcdPrintHorz(385, 240, 30, myWHITE);
// LcdPrintHorz(385, 241, 30, myWHITE);
// LcdPrintVert(399, 225, 30, myWHITE);
// LcdPrintVert(400, 225, 30, myWHITE);
// LcdPrintVert(401, 225, 30, myWHITE);
LcdPrintHorz(240, 135, 30, myWHITE); //??×???
LcdPrintHorz(240, 136, 30, myWHITE);
LcdPrintHorz(240, 137, 30, myWHITE);
LcdPrintVert(254, 122, 30, myWHITE);
LcdPrintVert(255, 122, 30, myWHITE);
LcdPrintVert(256, 122, 30, myWHITE);

buttonxy =1; //???????÷°???
GetAD_XY =1; //??AD???????ù
while(!Adjustdisplay()); //?????á??

// LcdPrintHorz(385, 239, 30, myBLUE); //??×???
// LcdPrintHorz(385, 240, 30, myBLUE);
// LcdPrintHorz(385, 241, 30, myBLUE);
// LcdPrintVert(399, 225, 30, myBLUE);
// LcdPrintVert(400, 225, 30, myBLUE);
// LcdPrintVert(401, 225, 30, myBLUE);
LcdPrintHorz(240, 135, 30,  myBLUE); //??×???
LcdPrintHorz(240, 136, 30,  myBLUE);
LcdPrintHorz(240, 137, 30,  myBLUE);
LcdPrintVert(254, 122, 30,  myBLUE);
LcdPrintVert(255, 122, 30,  myBLUE);
LcdPrintVert(256, 122, 30,  myBLUE);
// LcdPrintStr("?????÷??????×???",336,288,BLACK,BLACK,0);//????×?·???
 RA8875DrawString(10,200,"Lcd test3",0xFFFF,0x001f);

if(!buttonxy) //??×?????buttonxy=0
{
again =0; //±ê??????
// LcdPrintStr("??×?????",368,288,WHITE,BLACK,0);//??????×?????
 RA8875DrawString(200,100,"Lcd test4",0xFFFF,0x001f);
}
else //??×???????buttonxy=1
{
again =1; //??????×?
// LcdPrintStr("??×??§°?.2???ó??????×?",332,288,WHITE,BLACK,0);//??????×??§°?
 RA8875DrawString(200,200,"Lcd test5",0xFFFF,0x001f);
}
DelayMs(2000);
buttonxy =0;
}while(again);
}

/*********************************************************************************************************
???? ??????????
**********************************************************************************************************/
u8 Adjustdisplay(void)
{
if(!GetAD_XY)
{
if(buttonxy) //°???±ê??????????????×??á??
{
u16 X,Y;
// X = ((PointDataX -XMIN)*800)/Numx; //x?á?ò??????
// Y = ((PointDataY -YMIN)*480)/Numy; //y?á?ò??????
// X = 800- X;
X = ((PointDataX -XMIN)*480)/Numx; //x?á?ò??????
Y = ((PointDataY -YMIN)*272)/Numy; //y?á?ò??????
X = 480- X;
if(385><X&&X><415&&225<Y&&Y><255)//??°?????
buttonxy =0;//???????é
else
buttonxy =1;//???é??????
}
while(Touch_Status())//?????§??
{
clear_TP_interrupt();
DelayMs(1);
}
return 1;
}
else
return 0;
}

/*********************************************************************************************************
??  ??:Tim2,
×÷  ?? ??5ms????,
????AD,XY?á
**********************************************************************************************************/
void Tim2_Init(void)
{
TIM_TimeBaseInitTypeDef   TIM_TimeBaseStructure;

NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);//????TIM2?±??

// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//??????·?×é



NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;//
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //??????????
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 6;        //????????
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;           //????????

NVIC_Init(&NVIC_InitStructure);    //?????????èNVIC?????÷

TIM_TimeBaseStructure.TIM_Period = 5000;//????
TIM_TimeBaseStructure.TIM_Prescaler = 71;//???¨??????·?TIM?¤·?????
TIM_TimeBaseStructure.TIM_ClockDivision = 0;//?¤·???
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//?ò??????

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);//

TIM_ClearFlag(TIM2, TIM_FLAG_Update);//

TIM_ARRPreloadConfig(TIM2, DISABLE);//

TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);//
TIM_Cmd(TIM2, ENABLE);//
}

/*********************************************************************************************************
???? ??TIM2 5ms
**********************************************************************************************************/
void TIM2_IRQHandler(void)
{
u16 adx =0,ady =0,j =0;
if((TIM2->SR&TIM_IT_Update) && (TIM2->DIER&TIM_IT_Update))
{
TIM2->CR1 &= 0x03FE;//???¨?±?÷
TIM2->SR = 0xFFFE; //TIM_ClearITPendingBit(TIM3, TIM_IT_Update);????????±ê??


if(TOUCHSTS)//8875??·????????????ò
{
RA8875_WAITSTATUS();//?ì??8875??·???
if(Touch_Status())
{

ADINT =1; //±í??°?×???±ê????
for(j=0;j<2;j++)
{
Access_TP_coordinate();
adx += ADC_value_X;
ady += ADC_value_Y;

}
if(ADINT)
{
X[ AD_NO ] = adx>>1; //Y?áAD?????????ù??
Y[ AD_NO ] = ady>>1;
AD_NO++; //??????????????10???é???????????????à????
}
else
AD_NO = 0;
}
else
AD_NO = 0;

if( AD_NO >14 ) //??????????????15??
{
DisplayPointGet();//????
AD_NO =0; //????AD??????±?????0
}
}
else
AD_NO = 0;//±í????????±ê????
TIM2->CNT = 0; //?¨?±?÷CNT????
TIM2->CR1 |= 0x0001; //????TIM2
}
}

/*********************************************************************************************************
???? ???è?????????ò×???
**********************************************************************************************************/
void DisplayPointGet(void)
{
u8 tempi =0; //??×é???????????????????±±???
u8 ii =0, jj; //???????±±???
u16 num[40]; //????3?????????ù???????±±???
s16 tempNum1, tempNum2; //???±±???
s16 tempNumx =0, tempNumy =0; //X??Y?á?????±????±???
u8 point =0; //??????±ê????
s16 pox,poy; //X?á??±???
u8 pioo =0;
u32 mm,nn;
//x?á×?±ê?ì??
for(jj =0; jj<5; jj++)
{
tempNum1 = X[tempi+1] - X[tempi];//x1?????? X[ AD_NO ] = adx>>1; //Y?áAD?????????ù??
                           //                 Y[ AD_NO ] = ady>>1;
tempi +=2;
tempNum2 = X[tempi] - X[tempi-1];//x2??????
tempi++;//3

if((tempNum1<40)&&(tempNum1>-40)&&(tempNum2<40)&&(tempNum2>-40))//?????????ó??40
{
num[ii] = (X[tempi -3] + X[tempi -2] +X[tempi-1])/3;//?á??????×é???????ù????·?????×é??
ii++;
}
}
if(ii>3)
{
tempNumx = num[0] - num[ii -1];
pox = tempNumx;
if((tempNumx<70)&&(tempNumx>-70))
{
tempNumx =0;
for(jj =0; jj <ii; jj++)
{
tempNumx+=num[jj];
}
tempNumx/= ii;
point =1;
}
pioo =1;
}
tempi =0;
ii =0;

//y?á×?±ê?ì??
for(jj =0; jj><5; jj++)
{
tempNum1 = Y[tempi+1] - Y[tempi];
tempi +=2;
tempNum2 = Y[tempi] - Y[tempi-1];
tempi++;//3

if((tempNum1<40)&&(tempNum1>-40)&&(tempNum2<40)&&(tempNum2>-40))
{
num[ii] = (Y[tempi -3] + Y[tempi -2] +Y[tempi-1])/3;
ii++;
}
}
if(ii>3)
{
tempNumy = num[0] - num[ii -1];
poy = tempNumy;
if((tempNumy<70)&&(tempNumy>-70))
{
tempNumy =0;
for(jj =0; jj <ii; jj++)
{
tempNumy += num[jj];
}
tempNumy/= ii;
if(point)
{
// PENX = ((tempNumx -XMIN)*800)/Numx;
// PENY = ((tempNumy -YMIN)*480)/Numy;
PENX = ((tempNumx -XMIN)*480)/Numx;
PENY = ((tempNumy -YMIN)*272)/Numy;
// PENX = 800-PENX;
PENX = 480-PENX;
// if(!Po_OR_Aj&&GetAD_XY)  
if(!poAj&&GetAD_XY)
{
PointDataX = tempNumx; //????X?áAD
PointDataY = tempNumy; //????Y?áAD

GetAD_XY =0;
}
PEN_STATUS = 0;
//LcdPrintDot(PENX, PENY, WHITE);
return;
}
}
// u32 mm,nn;
mm = abs(pox);
nn = abs(poy);
mm = (mm*1000)/Signlex;
nn = (nn*1000)/Signley;
if(pioo)
{
if(mm >=nn)
{
/*if(pox < 0)//?ò×ó
{
PEN_STATUS = 3;
}
else//?ò??
{
PEN_STATUS = 4;
}*/
}
else
{
if(poy< 0)//?ò??
{
PEN_STATUS = 2;
//USART_SendData(USART1,2);
//while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
}
else//?ò??
{
PEN_STATUS = 1;
//USART_SendData(USART1,1);
//while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
}
}
}
else
{
if(poy< 0)//?ò??
{
PEN_STATUS = 2;
//USART_SendData(USART1,2);
//while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
}
else//?ò??
{
PEN_STATUS = 1;
//USART_SendData(USART1,1);
//while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
}
}
}
/*else if(pioo)
{
if(pox < 0)//?ò×ó
{
PEN_STATUS = 3;
}
else//?ò??
{
PEN_STATUS = 4;
}
}*/
}



u16 XMIN = 57; //  LCD(0,0)
u16 YMIN = 153; 
u16 XMAX = 985;//LCD(799,479)  384000
u16 YMAX = 1083;
u16 Numx = 901;
u16 Numy = 929;
u16 Signlex = 1508;
u16 Signley = 2416;

这是用ra8875 驱动4.3的屏 里面这个定义的变量是什么意思
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 17:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表