中级会员
 
- 积分
- 211
- 金钱
- 211
- 注册时间
- 2017-6-16
- 在线时间
- 46 小时
|
发表于 2018-6-21 14:14:50
|
显示全部楼层
关键程序应该在这里吧。
屏幕大小240*320,横屏从0行开始Z字扫描显示,只读像素的高8位放到color的低8位里,即color=GPIOC->IDR&0X00FF;
如果该像素点在第110~210列、第70~170行内,则判断color是否大于0x5F,据此显示白色或者黑色;
如果该像素点不在第110~210列、第70~170行内,则全部显示白色。
疑问:GPIOC管脚的像素读出一般不是2个8位像素吗,对应RGB高低各8位,但是这里只取了像素高8位。
阀值取0x5F有什么讲究不?谢谢!
我自己在弄摄像头测距,用的是红外光,找中心点用的是质心法,发现天气、时间对中心点有影响,不太清楚怎么解决。
for(y=0;y<240;y++)
{
for(x=0;x<320;x++)
{
OV7725_RCK=0;
color=GPIOC->IDR&0XFF; //YUYV输出读数据 不读第二个字节
OV7725_RCK=1;
//color<<=8;
OV7725_RCK=0;
//color|=GPIOC->IDR&0XFF; //读数据
OV7725_RCK=1;
if((x>=110&&x<210)&&(y>=70&&y<170))//100*100
{
if(color>0x5F) color=0xff;//白色
else
{ color=0x00;//黑色
}
LCD->LCD_RAM=GRAY_2_RGB565(color);
}
else LCD->LCD_RAM=GRAY_2_RGB565(0xff);
}
}
|
|