关于 800*480LCD驱动的修改其实并不在本贴主题内,但确实有相关性,后面我抽空把关键代码贴出来。
drv_fb.c 修改timing
.timing = {
.pixel_clock_hz = 33000000,
.h_back_porch = 46,
.h_front_porch = 210,
.h_sync_len = 2,
.v_back_porch = 23,
.v_front_porch = 22,
.v_sync_len = 2,
.h_sync_active = 0,
.v_sync_active = 0,
.den_active = 1,
.clk_active = 1,
},
rtconfig.h 修改 macro
#define LV_HOR_RES 800
#define LV_VER_RES 480
另外提示注意源码DEBE和DEFE时钟配置可能有坑,修改如下:
static void f1c100s_clk_defe_init(struct lcd_f1c100s_device *dev)
{
clk_mux_set_parent(dev->virtccu + CCU_DEFE_CLK, 3, 24, 0);
//clk_divider_set_rate(dev->virtccu + CCU_DEFE_CLK, 4, 0, RT_TRUE, 24000000, 198000000);
clk_divider_set_rate(dev->virtccu + CCU_DEFE_CLK, 4, 0, RT_TRUE, 198000000, 198000000);
}
static void f1c100s_clk_debe_init(struct lcd_f1c100s_device *dev)
{
clk_mux_set_parent(dev->virtccu + CCU_DEBE_CLK, 3, 24, 0);
//clk_divider_set_rate(dev->virtccu + CCU_DEBE_CLK, 4, 0, RT_TRUE, 24000000, 198000000);
clk_divider_set_rate(dev->virtccu + CCU_DEBE_CLK, 4, 0, RT_TRUE, 198000000, 198000000);
}
请注意检查!
]]>关于 800*480LCD驱动的修改其实并不在本贴主题内,但确实有相关性,后面我抽空把关键代码贴出来。
t-thread+littlevgl fb改成800*480 需要怎么修改 我修改了发现不行 可以分享下细节么
关于 800*480LCD驱动的修改其实并不在本贴主题内,但确实有相关性,后面我抽空把关键代码贴出来。
]]>此版本是根据实际测试结果直接在代码上进行的校准。你可以在头文件上看到如下宏定义:
#define X_Origin 300
#define X_Width (3870-300)
#define X_Adapt_Width 800
#define Y_Origin 380
#define Y_Heigth (3900-380)
#define Y_Adapt_Heigth 480
300就是在5寸电阻屏上通过打log方式从2009读出的的X轴最左边值。380 是Y轴最上边值。
3870是X轴最右边值,3900是Y轴最下边值。
800 和480是需要适配的像素值。这里有个转换公式可以在.c文件中看到:
x=(x-X_Origin)*X_Adapt_Width/X_Width;
y=(y-Y_Origin)*Y_Adapt_Heigth/Y_Heigth;
由2009读出的x,y原始坐标经过该公式就可转换为精度很高的准确值。
]]>基于@staunchheart提供的git代码,增加了NS2009的触摸屏驱动,在widora tiny200s开发板上初步测试press和release 事件触发无误。
下面是NS2009触摸屏调试的相关步骤:1.I2C0上的SDA、SCLK飞线上拉10K欧姆电阻至3.3V。
2.编写NS2009的rt thread 驱动 package, 组件为drv_tp_ns2009.c 及其头文件。
2.1 本人只是将其作为组件编写,并未在系统上做实际注册,后续此处有更新会贴出来。
2.2 此次使用查询方式实现触摸事件的捕捉,具体为实现一个loop thread.而后main调用运行该thread即可。
2.3 仅实现了touch press 和release 事件,move事件考虑后续添加。3.在env下使用scons命令编译系统后进行烧录。
...
t-thread+littlevgl fb改成800*480 需要怎么修改 我修改了发现不行 可以分享下细节么
]]>on_touch_callback_func这外写法其实是很差劲的写法,耦合得太紧。。当时刚开始学习RTT,只想着快点调通,现在看着都觉得有些惭愧,这个代码还拿到GIT上给朋友们看。
建议朋友参考
https://github.com/RT-Thread-packages/gt9147
的写法。等TINY200的R3版出来后再重新上传一个。
@windbleed
感谢楼主热心分享,晚点我加入精华帖列表。
感谢楼主热心分享,晚点我加入精华帖列表。
]]>