1.lcd.h
我们在lcd.h里面定义一个结构体,用来表示LCD需要的参数。
#ifndef _LCD_H
#define _LCD_H
enum {
NORMAL = 0,
INVERT = 1,
};
/* NORMAL : 正常极性
* INVERT : 反转极性
*/
typedef struct pins_polarity {
int vclk; /* normal: 在下降沿获取数据 */
int rgb; /* normal: 高电平表示1 */
int hsync; /* normal: 高脉冲 */
int vsync; /* normal: 高脉冲 */
}pins_polarity, *p_pins_polarity;
typedef struct time_sequence {
/* 垂直方向 */
int tvp; /* vysnc脉冲宽度 */
int tvb; /* 上边黑框, Vertical Back porch */
int tvf; /* 下边黑框, Vertical Front porch */
/* 水平方向 */
int thp; /* hsync脉冲宽度 */
int thb; /* 左边黑框, Horizontal Back porch */
int thf; /* 右边黑框, Horizontal Front porch */
int vclk;
}time_sequence, *p_time_sequence;
typedef struct lcd_params {
/* 引脚极性 */
pins_polarity pins_pol;
/* 时序 */
time_sequence time_seq;
/* 分辨率, bpp */
int xres;
int yres;
int bpp;
/* framebuffer的地址 */
unsigned int fb_base;
}lcd_params, *p_lcd_params;
#endif /* _LCD_H */
2.lcd_controller.h
#ifndef _LCD_CONTROLLER_H
#define _LCD_CONTROLLER_H
#include "lcd.h"
typedef struct lcd_controller {
void (*init)(p_lcd_params plcdparams);
void (*enable)(void);
void (*disable)(void);
}lcd_controller, *p_lcd_controller;
#endif /* _LCD_CONTROLLER_H */
3.lcd_controller.c
/* 向上: 接收不同LCD的参数
* 向下: 使用这些参数设置对应的LCD控制器
*/
void lcd_controller_init(p_lcd_params plcdparams)
{
/* 调用2440的LCD控制器的初始化函数 */
lcd_controller.init(plcdparams);
}
4.s3c2440_lcd_controller.c
struct lcd_controller s3c2440_lcd_controller = {
.init = xxx,
.enalbe = xxx,
.disable = xxx,
};
上一篇:S3C2440裸机------LCD_LCD控制器编程
下一篇:S3C2440裸机------LCD_框架与准备
推荐阅读最新更新时间:2024-11-08 10:47
设计资源 培训 开发板 精华推荐
- 2019年电赛D题-简易电路特性测试-设计方案及报告(国二,常州大学)
- 使用 RP40-11005SFR DC/DC 转换器并根据 EN55022 Class B 进行 EMC 滤波的典型应用(110Vin 双输出)
- MIC2182,适用于多种应用的高效同步降压稳压器 DC/DC 转换评估板
- NTAG I2C + Explorer套件,带NFC读卡器
- 具有电源良好状态的 LT3976EUDD 5V、2MHz 降压转换器的典型应用电路
- NCP45521 Eco SWITCH 高级负载管理的典型应用负载开关电路
- MC33074DR2G光伏电池放大器的典型应用
- 鸢尾立方->试管/10ml采血管架 28架位
- DC996B-I,具有 LTC2215 16 位 65 Msps、高速和高动态范围 ADC 的演示板
- L7809A 具有温度补偿的可调输出电压的典型应用