コード例 #1
0
ファイル: radio_rda5876.c プロジェクト: jinlan100130/BTPhone
/**
 * @brief   RDA_bt_SerialCommTxByte蓝牙I2C设置。
 * @author  LHD
 * @date    2012-02-16
 * @param   Data 要发送的数据
 * @return  uint8
 */
uint8 RDA_bt_SerialCommTxByte(uint8 data) /* return 0 --> ack */
{
    T_S32 i;
    uint8 temp_value = 0;
    for(i=7; (i>=0)&&(i<=7); i--){
       gpio_set_pin_level(GPIO_I2C_SCLK,0); /* low */
       DELAY(DURATION_LOW);
       if(i==7)gpio_set_pin_dir(GPIO_I2C_SDA,1);
       DELAY(DURATION_LOW/2);
       gpio_set_pin_level(GPIO_I2C_SDA,((data>>i)&0x01));
       DELAY(DURATION_LOW/2);
       gpio_set_pin_level(GPIO_I2C_SCLK,1); /* high */
       DELAY(DURATION_HIGH);
    }
    gpio_set_pin_level(GPIO_I2C_SCLK,0);/* low */  
    DELAY(DURATION_LOW);
    gpio_set_pin_dir(GPIO_I2C_SDA,0);
    DELAY(DURATION_LOW/2);
    gpio_set_pin_level(GPIO_I2C_SCLK,1);
    DELAY(DURATION_HIGH);    
    temp_value = gpio_get_pin_level(GPIO_I2C_SDA);
    gpio_set_pin_level(GPIO_I2C_SCLK,0);
    DELAY(DURATION_LOW);
    return temp_value;
}
コード例 #2
0
ファイル: radio_rda5876.c プロジェクト: jinlan100130/BTPhone
void SerialCommInit(void)
{
    gpio_set_pin_dir(GPIO_I2C_SCLK,1);  
    gpio_set_pin_dir(GPIO_I2C_SDA,1);     
    gpio_set_pin_level(GPIO_I2C_SCLK,1);
    gpio_set_pin_level(GPIO_I2C_SDA,1);
}
コード例 #3
0
ファイル: radio_rda5876.c プロジェクト: jinlan100130/BTPhone
void SerialCommStop(void)
{
    gpio_set_pin_level(GPIO_I2C_SCLK,0);
    DELAY(DURATION_LOW);
    gpio_set_pin_dir(GPIO_I2C_SDA,1);
    gpio_set_pin_level(GPIO_I2C_SDA,0);
    DELAY(DURATION_STOP_1);
    gpio_set_pin_level(GPIO_I2C_SCLK,1);
    DELAY(DURATION_STOP_2);    
    gpio_set_pin_level(GPIO_I2C_SDA,1);/* stop condition */
    DELAY(DURATION_STOP_3);      
}
コード例 #4
0
void USB_0_PORT_init(void)
{
	gpio_set_pin_direction(PA24,
	        // <y> Pin direction
	        // <id> pad_direction
	        // <GPIO_DIRECTION_OFF"> Off
	        // <GPIO_DIRECTION_IN"> In
	        // <GPIO_DIRECTION_OUT"> Out
			GPIO_DIRECTION_OUT);

	gpio_set_pin_level(PA24,
	        // <y> Initial level
	        // <id> pad_initial_level
	        // <false"> Low
	        // <true"> High
			false);

	gpio_set_pin_pull_mode(PA24,
	        // <y> Pull configuration
	        // <id> pad_pull_config
	        // <GPIO_PULL_OFF"> Off
	        // <GPIO_PULL_UP"> Pull-up
	        // <GPIO_PULL_DOWN"> Pull-down
			GPIO_PULL_OFF);

	gpio_set_pin_mux(PA24, GPIO_MUX_G);

	gpio_set_pin_direction(PA25,
	        // <y> Pin direction
	        // <id> pad_direction
	        // <GPIO_DIRECTION_OFF"> Off
	        // <GPIO_DIRECTION_IN"> In
	        // <GPIO_DIRECTION_OUT"> Out
			GPIO_DIRECTION_OUT);

	gpio_set_pin_level(PA25,
	        // <y> Initial level
	        // <id> pad_initial_level
	        // <false"> Low
	        // <true"> High
			false);

	gpio_set_pin_pull_mode(PA25,
	        // <y> Pull configuration
	        // <id> pad_pull_config
	        // <GPIO_PULL_OFF"> Off
	        // <GPIO_PULL_UP"> Pull-up
	        // <GPIO_PULL_DOWN"> Pull-down
			GPIO_PULL_OFF);

	gpio_set_pin_mux(PA25, GPIO_MUX_G);
}
コード例 #5
0
ファイル: camera_ov3640.c プロジェクト: jinlan100130/BTPhone
static T_BOOL cam_ov3640_close(T_VOID)
{    
    gpio_set_pin_level(GPIO_CAMERA_CHIP_ENABLE, !CAM_EN_LEVEL);
    gpio_set_pin_dir(GPIO_CAMERA_RESET, GPIO_DIR_INPUT);

	//IICÐèÒªÓûغê
	gpio_set_pin_dir(28, GPIO_DIR_OUTPUT);
    gpio_set_pin_level(28, GPIO_LEVEL_LOW);
    gpio_set_pin_dir(0, GPIO_DIR_OUTPUT);
    gpio_set_pin_level(0, GPIO_LEVEL_LOW);
    
    return AK_TRUE;
}
コード例 #6
0
ファイル: Fwl_Detect.c プロジェクト: jinlan100130/BTPhone
/*******************************************************************************
 * @brief   set LoudSpeaker connect
 * @author  
 * @date    
 * @param   [in]bIsConnect: connect or not
 * @return  T_VOID
*******************************************************************************/
T_VOID Fwl_SpkConnectSet(T_BOOL bIsConnect)
{
    if (bIsConnect)
    {
        gpio_set_pin_dir(GPIO_SPEAKER_CONTROL, GPIO_DIR_OUTPUT);
        gpio_set_pin_level(GPIO_SPEAKER_CONTROL, LEVEL_HIGH);
    }
    else
    {
        gpio_set_pin_dir(GPIO_SPEAKER_CONTROL, GPIO_DIR_OUTPUT);
        gpio_set_pin_level(GPIO_SPEAKER_CONTROL, LEVEL_LOW);
    }
}
コード例 #7
0
ファイル: radio_rda5876.c プロジェクト: jinlan100130/BTPhone
void SerialCommStart(void) /* start or re-start */
{
   gpio_set_pin_dir(GPIO_I2C_SCLK,1);
   gpio_set_pin_dir(GPIO_I2C_SDA,1);
   gpio_set_pin_level(GPIO_I2C_SDA,1);
   DELAY(DURATION_START_1);
   gpio_set_pin_level(GPIO_I2C_SCLK,1);
   DELAY(DURATION_START_1);   
   gpio_set_pin_level(GPIO_I2C_SDA,0);
   DELAY(DURATION_START_2);
   gpio_set_pin_level(GPIO_I2C_SCLK,0);/* start condition */
   DELAY(DURATION_START_3);   
}
コード例 #8
0
ファイル: camera_ov3640.c プロジェクト: jinlan100130/BTPhone
static T_VOID cam_ov3640_open(T_VOID)
{
	gpio_set_pin_as_gpio(GPIO_CAMERA_CHIP_ENABLE);
    gpio_set_pin_dir(GPIO_CAMERA_CHIP_ENABLE, GPIO_DIR_OUTPUT);
    gpio_set_pin_level(GPIO_CAMERA_CHIP_ENABLE, CAM_EN_LEVEL);
    delay_ms(10);
	gpio_set_pin_as_gpio(GPIO_CAMERA_RESET);
    gpio_set_pin_dir(GPIO_CAMERA_RESET, GPIO_DIR_OUTPUT);
    gpio_set_pin_level(GPIO_CAMERA_RESET, CAM_RESET_LEVEL);
    delay_ms(10);
    gpio_set_pin_level(GPIO_CAMERA_RESET, !CAM_RESET_LEVEL);

    delay_ms(20);
}
コード例 #9
0
ファイル: nfc.c プロジェクト: jinlan100130/BTPhone
/**
 * @brief       select/deselect a nandflash target
 * @author      Yang Yiming
 * @date        2012-12-25
 * @param       [in]nTarget target nandflash
 * @param       [in]bSelect AK_TRUE to select, AK_FALSE to deselect
 * @return      T_BOOL
 */
T_BOOL nfc_select(T_U8 nTarget, T_BOOL bSelect)
{
    //only when additional #ce is needed, this block is essential
    if (s_nPhyPos[nTarget] < INVALID_GPIO)
    {
        gpio_set_pin_dir(s_nPhyPos[nTarget], GPIO_DIR_OUTPUT);
        gpio_set_pin_level(s_nPhyPos[nTarget], bSelect ? GPIO_LEVEL_LOW : GPIO_LEVEL_HIGH);
    }

    if (bSelect)
    {
        g_clk_map |= CLK_NFC_EN;
        store_int(INT_EN_L2);
        sys_module_enable(eVME_NANDFLASH_CLK, AK_TRUE);
        sys_share_pin_lock(ePIN_AS_NANDFLASH);
        s_nActChip = nTarget;
    }
    else
    {
        s_nActChip = 0xFF;
        sys_module_enable(eVME_NANDFLASH_CLK, AK_FALSE);
        sys_share_pin_unlock(ePIN_AS_NANDFLASH);
        restore_int();
        g_clk_map &= ~CLK_NFC_EN;
    }
    
    return AK_TRUE;
}
コード例 #10
0
ファイル: camera_ov2643.c プロジェクト: Lamobo/Lamobo-D1
static T_VOID cam_ov2643_open(T_VOID)
{  
    gpio_set_pin_dir(GPIO_CAMERA_AVDD, GPIO_DIR_OUTPUT);
    gpio_set_pin_level(GPIO_CAMERA_AVDD, gpio_pin_get_ActiveLevel(GPIO_CAMERA_AVDD));   

    gpio_set_pin_as_gpio(GPIO_CAMERA_CHIP_ENABLE);
    gpio_set_pin_dir(GPIO_CAMERA_CHIP_ENABLE, GPIO_DIR_OUTPUT);
    gpio_set_pin_level(GPIO_CAMERA_CHIP_ENABLE, CAM_EN_LEVEL);    
    mini_delay(10);

    gpio_set_pin_as_gpio(GPIO_CAMERA_RESET);
    gpio_set_pin_dir(GPIO_CAMERA_RESET, GPIO_DIR_OUTPUT);
    gpio_set_pin_level(GPIO_CAMERA_RESET, CAM_RESET_LEVEL);
    mini_delay(10);
    gpio_set_pin_level(GPIO_CAMERA_RESET, !CAM_RESET_LEVEL);

    mini_delay(20);
}
コード例 #11
0
ファイル: camera_gc0308.c プロジェクト: Lamobo/Lamobo-D1
static T_BOOL cam_gc0308_close(T_VOID)
{
    //sccb software standby mode
	T_U8 Reg0x1a = 0x2b;
	T_U8 Reg0x25 = 0x00;
    sccb_write_data(CAMERA_SCCB_ADDR, 0x1a, &Reg0x1a, 1);
	sccb_write_data(CAMERA_SCCB_ADDR, 0x25, &Reg0x25, 1);

	gpio_set_pin_level(GPIO_CAMERA_CHIP_ENABLE, !CAM_EN_LEVEL);
    gpio_set_pin_level(GPIO_CAMERA_AVDD, !gpio_pin_get_ActiveLevel(GPIO_CAMERA_AVDD));    
    gpio_set_pin_dir(GPIO_CAMERA_RESET, GPIO_DIR_INPUT);

    gpio_set_pin_dir(GPIO_I2C_SCL, GPIO_DIR_OUTPUT);
    gpio_set_pin_level(GPIO_I2C_SCL, GPIO_LEVEL_LOW);
    gpio_set_pin_dir(GPIO_I2C_SDA, GPIO_DIR_OUTPUT);
    gpio_set_pin_level(GPIO_I2C_SDA, GPIO_LEVEL_LOW);
    
    return AK_TRUE;
}
コード例 #12
0
ファイル: radio_rda5876.c プロジェクト: jinlan100130/BTPhone
uint16 RDAFM_GetChipID(void)
{
    uint8 RDAFM_reg_data[6]={0};
    uint16 cChipID;
//  uint8 tryCount,bRet;

    SerialCommInit();
    
    gpio_set_pin_level(GPIO_I2C_SCLK,0);
    DELAY(DURATION_LOW);
    gpio_set_pin_level(GPIO_I2C_SCLK,1);
    DELAY(DURATION_LOW*30);
  
    gpio_set_pin_level(GPIO_I2C_SDA,1);
    gpio_set_pin_level(GPIO_I2C_SCLK,1);

    RDAFM_reg_data[0]=0x00;
    RDAFM_reg_data[1]=0x02;

    OperationRDAFM_2w(WRITE,&RDAFM_reg_data[0], 2);
    delay_us(30000);       
    OperationRDAFM_2w(READ,&RDAFM_reg_data[0], 6);
    cChipID=(RDAFM_reg_data[4]*0x100)+ RDAFM_reg_data[5];   
    
    if(0x5802==cChipID || 0x5803==cChipID )
    {
        return(0x5802);
    }
    else
    {
        RDABT_5876_fm_patch_on();
        delay_us(10000);
        OperationRDAFM_2w(WRITE,&(RDAFM_reg_data[0]), 2);
        delay_us(30000);
        OperationRDAFM_2w(READ,&(RDAFM_reg_data[0]), 6);
        cChipID=(RDAFM_reg_data[4]*0x100)+ RDAFM_reg_data[5];
        if(0x5802==cChipID || 0x5803==cChipID )
        {
            return(0x5802);
        }
    }
    return (0xFFFF);        
}
コード例 #13
0
ファイル: camera_hm1375.c プロジェクト: Lamobo/Lamobo-D1
static T_BOOL cam_hm1375_close(T_VOID)
{
    //sccb software standby mode
//    T_U8 Reg0x3d = 0x48;
//    T_U8 Reg0xc3 = 0x00;
    
//    sccb_write_short(CAMERA_SCCB_ADDR, 0x3d, &Reg0x3d, 1);
//    sccb_write_short(CAMERA_SCCB_ADDR, 0xc3, &Reg0xc3, 1);

    gpio_set_pin_level(GPIO_CAMERA_CHIP_ENABLE, !CAM_EN_LEVEL);
    gpio_set_pin_level(GPIO_CAMERA_AVDD, !gpio_pin_get_ActiveLevel(GPIO_CAMERA_AVDD));    
    gpio_set_pin_dir(GPIO_CAMERA_RESET, GPIO_DIR_INPUT);

    gpio_set_pin_dir(GPIO_I2C_SCL, GPIO_DIR_OUTPUT);
    gpio_set_pin_level(GPIO_I2C_SCL, GPIO_LEVEL_LOW);
    gpio_set_pin_dir(GPIO_I2C_SDA, GPIO_DIR_OUTPUT);
    gpio_set_pin_level(GPIO_I2C_SDA, GPIO_LEVEL_LOW);
    
    return AK_TRUE;
}
コード例 #14
0
ファイル: radio_rda5876.c プロジェクト: jinlan100130/BTPhone
void SerialCommRxByte(uint8 *data, uint8 ack)
{
   T_S32 i;
   uint32 dataCache;

   dataCache = 0;
   for(i=7; (i>=0)&&(i<=7); i--){
      gpio_set_pin_level(GPIO_I2C_SCLK,0);
      DELAY(DURATION_LOW);
       if(i==7)gpio_set_pin_dir(GPIO_I2C_SDA,0);
      DELAY(DURATION_LOW/2);
      gpio_set_pin_level(GPIO_I2C_SCLK,1);
      DELAY(DURATION_HIGH);
      dataCache |= (gpio_get_pin_level(GPIO_I2C_SDA)<<i);
      DELAY(DURATION_LOW/2);
   }
   
   gpio_set_pin_level(GPIO_I2C_SCLK,0);
   DELAY(DURATION_LOW);
   gpio_set_pin_dir(GPIO_I2C_SDA,1);
   DELAY(DURATION_LOW/2);
   gpio_set_pin_level(GPIO_I2C_SDA,ack);   
   DELAY(DURATION_LOW/2);   
   gpio_set_pin_level(GPIO_I2C_SCLK,1);
   DELAY(DURATION_HIGH);
   *data = (uint8)dataCache;
   gpio_set_pin_level(GPIO_I2C_SCLK,0);
}
コード例 #15
0
ファイル: Fwl_LCD.c プロジェクト: jinlan100130/BTPhone
T_VOID Fwl_DisplaySleep(T_VOID)
{
	gpio_set_pin_level(GPIO_LCD_BACKLIGHT, 0);
    lcd_turn_off();
}
コード例 #16
0
ファイル: Fwl_LCD.c プロジェクト: jinlan100130/BTPhone
T_VOID Fwl_DisplayBacklightOff(T_VOID)  
{
	gpio_set_pin_level(GPIO_LCD_BACKLIGHT, 0);
}