微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 平台为6572的闪光灯正常但电筒无法控制

平台为6572的闪光灯正常但电筒无法控制

时间:10-02 整理:3721RD 点击:
平台为6572的闪光灯正常但电筒无法控制
控制代码如下  在闪光灯模式下,示波器读IO电平如下 GPIO14=1,GPIO15=0,GPIO16=1,闪光正常
在手电筒模式下 示波器读IO电平如下 GPIO14=0,GPIO15=1,GPIO16=1,手电懂不正常,也没根据软件的逻辑运行
目前还没查到IO复用问题,到现在不知道是什么原因,那位大侠不我分析分析
#ifdef GPIO_LEDS_STROBE
#define LEDS_TORCH_MODE                 0
#define LEDS_FLASH_MODE                 1
#define LEDS_CUSTOM_MODE_THRES         20
#define PLUSE_NUM        5
#define GPIO_CAMERA_ONEW_EN_PIN (GPIO14)
#define GPIO_CAMERA_TORCH_EN_PIN (GPIO15)
#define GPIO_CAMERA_FLASH_EN_PIN (GPIO16)
int FL_enable(void)
{
        int pulse_count=0;
        PK_DBG("%s: start\n", __func__);
        mt_set_gpio_out(GPIO_CAMERA_ONEW_EN_PIN,GPIO_OUT_ONE); //wakeup  enable chip
        if( g_torch_mode == LEDS_FLASH_MODE )
        {
                mt_set_gpio_out(GPIO_CAMERA_FLASH_EN_PIN,GPIO_OUT_ONE);
                }
                PK_DBG("[constant_flashlight] enable flashlight flashlight  success!     \n"); */
        }
        else if( g_torch_mode == LEDS_TORCH_MODE ){
                mt_set_gpio_out(GPIO_CAMERA_TORCH_EN_PIN,GPIO_OUT_ONE);
        }
    return 0;
}
int FL_disable(void)
{
        PK_DBG("%s: start\n", __func__);
        mt_set_gpio_out(GPIO_CAMERA_ONEW_EN_PIN,GPIO_OUT_ZERO);
        mt_set_gpio_out(GPIO_CAMERA_FLASH_EN_PIN,GPIO_OUT_ZERO);
        mt_set_gpio_out(GPIO_CAMERA_TORCH_EN_PIN,GPIO_OUT_ZERO);
    return 0;
}
int FL_dim_duty(kal_uint32 duty)
{
        PK_DBG("FL_dim_duty %d, thres %d", duty, LEDS_CUSTOM_MODE_THRES);
        if(duty==0)
                g_torch_mode=LEDS_TORCH_MODE;
        else
                g_torch_mode=LEDS_FLASH_MODE;
        if((g_timeOutTimEMS == 0) && (duty > LEDS_CUSTOM_MODE_THRES))
        {
                PK_ERR("FL_dim_duty %d > thres %d, FLASH mode but timeout %d", duty, LEDS_CUSTOM_MODE_THRES, g_timeOutTimeMs);
                g_torch_mode=LEDS_TORCH_MODE;
        }
    return 0;
}
int FL_init(void)
{
        PK_DBG("%s: start\n", __func__);
        mt_set_gpio_mode(GPIO_CAMERA_ONEW_EN_PIN,GPIO_MODE_00);
        mt_set_gpio_dir(GPIO_CAMERA_ONEW_EN_PIN,GPIO_DIR_OUT);
        mt_set_gpio_out(GPIO_CAMERA_ONEW_EN_PIN,GPIO_OUT_ZERO);
       
        mt_set_gpio_mode(GPIO_CAMERA_FLASH_EN_PIN,GPIO_MODE_00);
        mt_set_gpio_dir(GPIO_CAMERA_FLASH_EN_PIN,GPIO_DIR_OUT);
        mt_set_gpio_out(GPIO_CAMERA_FLASH_EN_PIN,GPIO_OUT_ZERO);
       
        mt_set_gpio_mode(GPIO_CAMERA_TORCH_EN_PIN,GPIO_MODE_00);
        mt_set_gpio_dir(GPIO_CAMERA_TORCH_EN_PIN,GPIO_DIR_OUT);
        mt_set_gpio_out(GPIO_CAMERA_TORCH_EN_PIN,GPIO_OUT_ZERO);
        FL_disable();
        INIT_WORK(&workTimeOut, work_timeOutFunc);
    return 0;
}

问题解决 ,使能扣修改为
#define GPIO_CAMERA_ONEW_EN_PIN (GPIO16)
#define GPIO_CAMERA_TORCH_EN_PIN (GPIO15)
#define GPIO_CAMERA_FLASH_EN_PIN (GPIO14)

学习

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top