mtk 中断

本文详细介绍了MTK平台的中断处理机制,包括触摸屏中断的创建、中断处理函数以及事件处理流程。同时,讲解了图层概念,阐述了如何配置硬件层、启动DMA传输以及设置LCD数据缓冲区。此外,还探讨了UI图形绘制,如填充区域、渐变色、背景图像等不同背景类型的操作方法。
摘要由CSDN通过智能技术生成

MTK平台有个图层的概念。每个层的数据存放在不同的buffer中,这些buffer可以从LCD对应的寄存器中读出。具体的自己去查对应平台的规格书吧。

MTK的平台是你在blockwrite中通过STARTLCDTRANSFER打开这个寄存器对应的位,然后硬件把每一层图像中对应的像素点取出,然后通过硬件合成,把合成后的数据通过你在LCD_DATA_ADDR中设置的端口地址找到LCD接口,送入LCD中显示。

 

1,首先由应用建立一个layer,开一个存放LCD数据的BUFFER,然后把这个BUFFER的地址赋给LCD寄存器

gdi_layer_blt_ext() >> CONFIG_HARDWARE_LAYER >> config_lcd_layer_window()

{......

DRV_WriteReg32(lcd_layer_base_addr+0x0C,layer_data->frame_buffer_address);

}

这样数据源已经关联起来了,其实这里还会设置宽度和高度这些信息.

 

2,准备好数据源之后开始发指令进行DMA传输

gdi_layer_blt_ext() >> lcd_fb_update() >> MainLCD->BlockWrite()

{

START_LCD_TRANSFER

}

--------------------------------------------------------------------------------------

每个背景就是一个图形或图像填充起来的矩形,只要初始化结构提UI_filled_area,然后交由函数gui_draw_filled_area画出来即可。

typedef struct _UI_filled_area
{

    U32 flags;                                   //总控制标志

    PU8 b;                                       //背景图像
    gradient_color *gc;                          //递进颜色
    color c;                                     //背景色
    color ac;                                    //替换色
    color border_color;                          //边框颜色
    color shadow_color;                          //阴影颜色
    UI_transparent_color_type transparent_color; //透明色
} UI_filled_area;

flags = 类型标志|边框标志|阴影标志;

 

颜色为背景

void EntryScreenInternet(void)
{
  UI_filled_area filler = {0};    
 EntryNewScreen(SCR_INT_MAIN, NULL, EntryScreenInternet, NULL);

 entry_full_screen();
 clear_screen_with_color(gui_color(0, 255, 0));

 filler.flags = UI_FILLED_AREA_TYPE_COLOR|UI_FILLED_AREA_BORDER|UI_FILLED_AREA_SHADOW;
 filler.c = UI_COLOR_GREY;
 filler.border_color = UI_COLOR_DARK_GREY;
 filler.shadow_color = UI_COLOR_3D_FILLER;
 gui_draw_filled_area(20, 20, 156, 150, &filler);

 ShowCategoryInternet();

 SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);

}

 

递进颜色为背景

void EntryScreenInternet(void)
{
 UI_filled_area filler = {0};
 static color g_color[3] = { {255, 0, 0},{0, 255, 0},{0, 0, 255}};
 static U8 perc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值