野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 7929|回复: 2

OV7725 Camera_Data值得处理

[复制链接]
发表于 2016-5-1 10:18:07 | 显示全部楼层 |阅读模式
void ImagDisp(void)
{
        uint16_t i, j;
        uint16_t Camera_Data;
        uint16_t usPixelData;
        
        ILI9341_GramScan( 2 );
        
        for(i = 0; i < 240; i++)
        {
                for(j = 0; j < 320; j++)
                {
                        READ_FIFO_PIXEL(Camera_Data);               
                        usPixelData=TranslatetoRGB(Camera_Data);
                        printf("%x",usPixelData);
        //                ILI9341_Write_Data(Camera_Data);
                }
        }
}
uint16_t TranslatetoRGB(uint16_t m)
{        
        uint16_t usR=0, usG=0, usB=0 ;

        

        
        usR = m;           /*FIRST READ OUT DUMMY DATA*/
        
        usR =m;           /*READ OUT RED DATA  */
        usB = m;          /*READ OUT BLUE DATA*/
        usG = m;          /*READ OUT GREEN DATA*/        
        
  return ( ( ( usR >> 11 ) << 11 ) | ( ( usG >> 10 ) << 5 ) | ( usB >> 11 ) );
        
}

return 返回的是什么意思?  是一个值吗?
回复

使用道具 举报

发表于 2016-5-2 09:42:17 | 显示全部楼层
一个像素点的值
回复 支持 反对

使用道具 举报

发表于 2016-5-2 10:55:54 | 显示全部楼层
本帖最后由 11kxmx 于 2016-5-2 10:57 编辑

你想函数类型是uint16_t ,返回的当然16位的值
这个值由原来的3个16位数值转化来,因送给LCD时只需一个16位数就代表了红绿蓝三种颜色即RGB565格式
需对原来的数据进行舍弃,当然只能保留高位,右移就是丢弃低位部分,左移是为了让有效数据排在合适的位置
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-5 04:01 , Processed in 0.026941 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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