LCD fb driver for linux 参数计算
本文参考了:http://www.linuxidc.com/Linux/2011-01/31800.htm 感谢该文的作者。 Linux内核的amba lcd控制器使用clcd_panel结构体表示一个LCD屏的硬件参数: /* include/linux/fb.h */
const char *name; /* optional */
u32 refresh; /* optional */
u32 xres;
u32 yres;
u32 pixclock;
u32 left_margin;
u32 right_margin;
u32 upper_margin;
u32 lower_margin;
u32 hsync_len;
u32 vsync_len;
u32 sync;
u32 vmode;
u32 flag;
};
struct fb_videomode mode;
signed short width; /* width in mm */
signed short height; /* height in mm */
u32 tim2;
u32 tim3;
u32 cntl;
unsigned int bpp:8,
fixedtimings:1,
grayscale:1;
unsigned int connector;
};
![](/assets/blank.gif)
![](/assets/blank.gif)
名称 | 在数据手册中的简称 | 中文名 | 意义 | 备注 |
name | No | 名字 | 液晶屏名字(可选) | No |
refresh | No | 刷新频率 | 刷新频率(内核中很多例子都赋值为60) | No |
xres | No | 行宽 | 每行的像素个数 | No |
yres | No | 屏幕高度 | 屏幕的行数 | No |
pixclock | No | 像素时钟 | 每个像素时钟周期的长度,单位是皮秒(10的负12次方分之1秒) | No |
left_margin | HBP (Horizontal Back Porch) | 水平后沿 |
在每行或每列的象素数据开始输出时要插入的象 素时钟周期数 |
No |
right_margin | HFP (Horizontal Front Porch ) | 水平前沿 |
在每行或每列的象素结束到LCD 行时钟输出脉冲 之间的象素时钟数 |
No |
upper_margin | VBP (Vertical Back Porch) | 垂直后沿 | 在垂直同步周期之后帧开头时的无效行数 | No |
lower_margin | VFP (Vertical Front Porch) | 垂直前沿 |
本帧数据输出结束到下一帧垂直同步周期开始之 前的无效行数 |
No |
hsync_len | HPW (HSYNC plus width) | 行同步脉宽 | 单位:像素时钟周期 | 也有手册简称为HWH(HSYNC width) |
vsync_len | VPW (VSYNC width) | 垂直同步脉宽 | 单位:显示一行的时间th | 也有手册简称为VWH(VSYNC width) |
sync | No | 同步极性设置 | 可以根据需要设置FB_SYNC_HOR_HIGH_ACT(水平同步高电平有效)和FB_SYNC_VERT_HIGH_ACT(垂直同步高电平有效) | No |
vmode | No | No | 在内核中的大多数示例都直接置为FB_VMODE_NONINTERLACED。interlaced的意思是交错[隔行]扫描,电视中使用2:1的交错率, 即每帧分两场,垂直扫描两次,一场扫描奇数行,另一场扫描偶数行。很显然LCD目前不是这种模式。 | No |
flag | No | No | 目前没有看到用法 | No |
说明:
#define TIM2_IVS (1 << 11) 反转垂直同步 信号的极性。0:高电平有效,低电平无效。1:相反
#define TIM2_IHS (1 << 12) 反转水平同步 信号的极性。0:高电平有效,低电平无效。1:相反
#define TIM2_IPC (1 << 13) 来选择象素数据是在显示屏时钟的上升沿还是下降沿被驱动到LCD 数据线。0:上升沿。1:下降沿。
#define TIM2_IOE (1 << 14) 这个位选择输出使能信号的有效极性。0:高电平有效,低电平无效。1:相反
#define TIM2_BCD (1 << 26) 将该位设为 1,令 PCD 的分频无效。主要用于 TFT 显示屏。这个位通常不设置,使用默认值0.
#define CNTL_LCDBPP1 (0 << 1) bit[1-3]定义色深。bpp:bits per pixel,每个像素的比特数。000 = 1 bpp.
#define CNTL_LCDBPP4 (2 << 1) 010 = 4 bpp.
#define CNTL_LCDBPP8 (3 << 1) 011 = 8 bpp.
#define CNTL_LCDBPP16 (4 << 1) 100 = 16 bpp
#define CNTL_LCDBPP16_565 (6 << 1) 110 = 16 bpp, 5:6:5 mode
#define CNTL_LCDBPP24 (5 << 1) 101 = 24 bpp (TFT panel only).
#define CNTL_LCDBW (1 << 4) STN LCD 单色/彩色选择 。1:彩色,0:单色
#define CNTL_LCDTFT (1 << 5) LCD 显示屏 TFT 类型选择。0: STN 显示屏,使用灰度定标器。1: TFT 显示屏,不使用灰度定标器
#define CNTL_LCDMONO8 (1 << 6) 这个位决定单色 STN LCD 是使用 4 位并行接口还是 8 位并行接口。0:4位接口。
#define CNTL_LCDDUAL (1 << 7) STN 单 LCD 显示屏或双 LCD 显示屏选择 。0=单屏
#define CNTL_BGR (1 << 8) 色彩模式选择,0=RGB:正常输出,1=BGR:红色和蓝色交换位置
#define CNTL_BEBO (1 << 9) 控制内存中字节的存储顺序: 0=小端字节顺序,1=大端字节顺序
#define CNTL_BEPO (1 << 10) 设定象素排序的方式,0=采用小端象素排序,1=采用大端象素排序
#define CNTL_LCDPWR (1 << 11) LCD 电源使能。1=LCD 显示屏通电且 LCDV[23:0]信号使能
#define CNTL_LCDVCOMP(x) ((x) << 12) LCD 纵向比较中断.00=垂直同步脉冲有效,01=垂直后沿开始,10=有效视频图像开始,11=垂直前沿开始
#define CNTL_LDMAFIFOTIME (1 << 15) DMA FIFO请求延时
#define CNTL_WATERMARK (1 << 16) LCD DMA FIFO 水位线.0:当 DMA FIFO 包含 4 个或 4 个以上空单元时产生一个 LCD DMA 请求 .1:8个。
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
.mode = {
.name = "QVGA TM035KDH03",
.xres = 240,
.yres = 320,
.pixclock = 35714,
.left_margin = 69,
.right_margin = 18,
.upper_margin = 12,
.lower_margin = 10,
.hsync_len = 1,
.vsync_len = 1,
.sync = FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT,
},
.width = -1,
.height = -1,
.tim2 = 0,
.cntl = ( CNTL_LCDTFT | CNTL_LCDVCOMP(1) | CNTL_LCDBPP16_565),
.bpp = 16,
};
LCD fb driver for linux 参数计算相关推荐
- linux系统计算从1加到100之和思路风暴
博文前言: 本博文为<老男孩linux就业培训中心-初级班第七期课前考试及课上讲解的课后答案整理, 原题:通过shell编程或命令行方式求1+2+3...+100=?的和来活学活用shel ...
- 卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)
卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习) 分享一些公式计算张量(图像)的尺寸,以及卷积神经网络(CNN)中层参数的计算. 以AlexNet网络为例,以下是该网络的参数结构图. A ...
- Go 初体验 - 令人惊叹的语法 - defer.3 - defer 函数参数计算时机
defer 函数的参数计算时机 定义一个 defer 函数,接收参数 n: 调用: 输出: 有点惊讶,为什么不是 100 200 200? go 语言里,defer 函数的参数是在定义位置被计算的,也 ...
- 卷积神经网络中的参数计算
举例1: 比如输入是一个32x32x3的图像,3表示RGB三通道,每个filter/kernel是5x5x3,一个卷积核产生一个feature map,下图中,有6个5x5x3的卷积核,故输出6个fe ...
- 卷积神经网络参数计算及卷积层输出尺寸计算
一.卷积神经网络参数计算 CNN一个牛逼的地方就在于通过感受野和权值共享减少了神经网络需要训练的参数的个数,所谓权值共享就是同一个Feature Map中神经元权值共享,该Feature Map中的所 ...
- 基于matlab的图解粒度参数计算,基于MATLAB的图解粒度参数计算-热带地理.PDF
基于MATLAB的图解粒度参数计算-热带地理 第 26卷 第 3期 热 带 地 理 Vol26,No3 2006年 8月 TROP ICAL GEO GRA PHY Aug. , 2006 基于 MA ...
- 双代号网络图节点时间参数_管理和实务都考!快速学会单代号与双代号参数计算...
工程网络计划是二级建造师<建设工程施工管理>科目每年均会进行考核的高频考点,重点在双代号.单代号网络计划的概念及应用.主要题型为通过网络图或文字描述计算相关网络参数或确定关键线路,本篇就双 ...
- DRILLNET 2.0------第十八章 起下钻水力参数计算模型
第十八章 起下钻水力参数计算模型 起下钻水力参数模型用来评估常规流体在管柱起下操作中的水力参数.在下钻过程中,管柱进入井眼时可能产生激动压力,在井眼内部这个压力可以导致井漏和地层破裂.另一方面,当管柱 ...
- PCB参数计算神器-Saturn PCB Design Toolkit下载及安装指南
进行PCB设计,特别是高频高速设计时,难免会涉及到PCB相关参数的计算及设置,如:VIA的过流能力,VIA的寄生电容.阻抗等,导线的载流能力,两相互耦合信号线间的串扰,波长等参数. 这里向大家介绍一款 ...
最新文章
- java基本数据类型_Java基础——数据类型
- jmeter 监听的介绍
- python数组合并、输入三行数据,如何在python中合并两个或三个3D数组?
- WIN7 Wireshark: There are no interfaces on which a capture can be done
- 计算机软考可以直接高级吗,计算机软考没有中级能考高级吗
- 贝叶斯网络学习Python环境搭建(pgmpy)
- step7设置pcpg_STEP7 PC/PG设置的疑惑
- 初学react.js
- MySQL select
- HFSS天线设计实例_BLE天线优化分析
- 计算机需要那些高中数学知识点,高中数学复习知识点有哪些
- 【原创】全文搜索引擎技术原理入门
- 【Python计量】statsmodels对虚拟变量进行回归
- access9磅字体是多_字体大小(几号-几磅)
- 数据分析模型 第九章
- 【云驻共创】华为云数据库之大数据入门与应用(全)
- 又赚了!分享几个我常去的私活接单平台
- 【算法设计与分析】HDU-1108 C++诡异的楼梯(BFS迷宫最短路径)
- 计算机版音乐教学反思,音乐教学反思(通用3篇)
- Windows应用程序设计