1. 程式人生 > >MTK 功能機6261a下除錯震動開關的LED跑馬燈驅動

MTK 功能機6261a下除錯震動開關的LED跑馬燈驅動

一直做上層, 沒弄過驅動, 最近其他人有點忙, 沒空弄, 這個東西又比較簡單, 所以就交給我了.作為新手, 還是記錄一下.

1., 根據硬體同事提供的原理圖:

確定了LED使用的gpio是GPIO1,GPIO2,GPIO3, 對應led的rgb三個顏色.

2.開啟到專案的配置工具: \custom\drv\Drv_Tool\DrvGen.exe, 工具中開啟\custom\codegen\GFIVE61A_11C_BB\codegen.dws

3.配置GPIO1,GPIO2,GPIO3. 如下圖:

之後就是點選save和gencode, 這樣程式碼就生成了,

 生成後的程式碼在custom\codegen\GFIVE61A_11C_BB\gpio_drv.h等檔案.

其中類似:

#define GPIO_PORT_1   (1|0x80)
#define GPIO_PORT_2   (2|0x80)
#define GPIO_PORT_3   (3|0x80)

就是配置要進行操作的io口.

4.在程式碼中進行控制, 找個地方, include gpio_drv.h, 就可以開始控制deng等的開關了!

示例:


void led_set_color(kal_uint8 r, kal_uint8 g, kal_uint8 b)
{
//    GPIO_InitIO(OUTPUT, GPIO_PORT_1); //初始化io口
//    GPIO_InitIO(OUTPUT, GPIO_PORT_2); //初始化io口
//    GPIO_InitIO(OUTPUT, GPIO_PORT_3); //初始化io口
    if(r)
        GPIO_WriteIO(1,GPIO_PORT_1);
    else
        GPIO_WriteIO(0,GPIO_PORT_1);

    if(g)
        GPIO_WriteIO(1,GPIO_PORT_3);
    else
        GPIO_WriteIO(0,GPIO_PORT_3);

    if(b)
        GPIO_WriteIO(1,GPIO_PORT_2);
    else
        GPIO_WriteIO(0,GPIO_PORT_2);
}