⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fs453.cpp

📁 Microsoft WinCE 6.0 BSP FINAL release source code for use with the i.MX27ADS TO2 WCE600_FINAL_MX27_S
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    //Fs453WriteRegister(FS453_MISC_47, &data);
  
    data = (CSP_BITFVAL(FS453_MISC_74_UV_ORDER, 0) | //U/V swap - no
        CSP_BITFVAL(FS453_MISC_74_PAL_MODE, FS453_SET_DISABLE) | // NTSC - disable, PAL - enable
        CSP_BITFVAL(FS453_MISC_74_CHR_BW, FS453_FILTER_BANDWIDTH_NARROW) |
        CSP_BITFVAL(FS453_MISC_74_INVERT_TOP,0) | // 0 - ntsc
        CSP_BITFVAL(FS453_MISC_74_SYS625_50,FS453_SET_DISABLE) | // NTSC - disable, PAL - enable
        CSP_BITFVAL(FS453_MISC_74_CH_PH_R,  FS453_MISC_74_CH_PH_R_EVERY_4_FIELDS) |
        CSP_BITFVAL(FS453_MISC_74_VSYNC5, FS453_SET_DISABLE)); // 6
  
    //Fs453WriteRegister(FS453_MISC_74, &data); //0x02//0x04

    if(mode == TVOUT_MODE_NTSC)
    {
        LONG w;
    
        //HSync Width
        data = 0x7e;
        m_fs453WriteRegister ( 0x48, &data ,1);
    
        //
        data = 0x40; m_fs453WriteRegister ( 0x49, &data ,1);
        data = 0x80; m_fs453WriteRegister ( 0x4A, &data ,1);
        data = 62 + 5 ; m_fs453WriteRegister ( 0x4B,  &data ,1);
        data = 0x00; m_fs453WriteRegister ( 0x4C,  &data ,1);
      
      
        w= 235 ;//240
        data = w >> 2     ; m_fs453WriteRegister ( 0x50,  &data,1);
        data = (w & 0x03) ; m_fs453WriteRegister( 0x65, &data, 1);
      
        data = 0x13; m_fs453WriteRegister ( 0x69,   &data  ,1);
        data = 0x2a; m_fs453WriteRegister ( 0x6C,  &data ,1);
        data = 0x14; m_fs453WriteRegister ( 0x73,  &data ,1);
        data = 0x04; m_fs453WriteRegister ( 0x74,  &data ,1);
        data = 0x10; m_fs453WriteRegister ( 0x75,  &data ,1);
      
      
        w=240;
        data = (w >> 2) ; m_fs453WriteRegister ( 0x7C,  &data,1);
        data = (w & 0x03); m_fs453WriteRegister ( 0x7D, &data,1);
      
        w=780;
        data = (w >> 2) ; m_fs453WriteRegister ( 0x5E,  &data, 1);
        data =  (w & 0x03); m_fs453WriteRegister ( 0x5F, &data, 1);
      
        w=277;
        data = (w >> 2) ; m_fs453WriteRegister ( 0x4E,  &data, 1);
        data =  (w & 0x03); m_fs453WriteRegister ( 0x4F, &data, 1);
    }

    // 12. DAC
    // ------------------------------------------------------------------------
    // ------ Set DACs
    data = (CSP_BITFVAL(FS453_DAC_CNTL_DAC_DMUX,FS453_DAC_CNTL_DAC_MUX_SIGNAL3) | // DACD - composite
        CSP_BITFVAL(FS453_DAC_CNTL_DAC_CMUX,FS453_DAC_CNTL_DAC_MUX_SIGNAL2) | // DACC - x
        CSP_BITFVAL(FS453_DAC_CNTL_DAC_BMUX,FS453_DAC_CNTL_DAC_MUX_SIGNAL1) | // DACB - C(S-Video)
        CSP_BITFVAL(FS453_DAC_CNTL_DAC_AMUX,FS453_DAC_CNTL_DAC_MUX_SIGNAL0)); // DACA - Y(S-Video)
  
    Fs453WriteRegister(FS453_DAC_CNTL, &data);

    // 8. misc
    // ------------------------------------------------------------------------
    // ------ Issue Bridge Reset
    data = (CSP_BITFVAL(FS453_MISC_P_ORDER, FS453_SET_DISABLE)| // Only affects UIM is 11,12
        CSP_BITFVAL(FS453_MISC_BRDG_RST,FS453_SET_ENABLE)| // Bridge pointer reset - disable
        CSP_BITFVAL(FS453_MISC_UIM_E,   FS453_SET_DISABLE)| // Change state at edge(0), at middle of pix(1)
        CSP_BITFVAL(FS453_MISC_UV_SWAP, FS453_SET_ENABLE)| // Swap Cr(V) and Cb(U) internal input
        CSP_BITFVAL(FS453_MISC_UIM_DEC, FS453_SET_DISABLE)| //horizontal prescaler divide by 2 to support high resolution VGA mode.
        CSP_BITFVAL(FS453_MISC_UIM_CCLK,FS453_SET_DISABLE)| //inverts the edge on which input control is latched.
        CSP_BITFVAL(FS453_MISC_UIM_DCLK,FS453_SET_DISABLE)| //inverts the edge on which input data is latched.
        CSP_BITFVAL(FS453_MISC_UIM_MOD, FS453_MISC_UIM_MOD_N565));
  
    Fs453WriteRegister(FS453_MISC, &data);

    data &= ~(CSP_BITFMASK(FS453_MISC_BRDG_RST));
    data |= CSP_BITFVAL(FS453_MISC_BRDG_RST,  FS453_SET_DISABLE);
  
    rc = Fs453WriteRegister(FS453_MISC, &data);
  
    return rc;
}

//-----------------------------------------------------------------------------
//
//  Function: Fs453DACOn
//
//  This function enable DAC of FS453.
//
//  Parameters:
//      None.
//
//  Returns:
//      Returns TRUE if successful, otherwise returns FALSE.
//
//-----------------------------------------------------------------------------
BOOL Fs453DACOn(TVOUT_DAC dac)
{
    BOOL rc = FALSE;
    DWORD data;
  
    // ------------------------------------------------------------------------
    // ------ Power on DACs
    data = ( CSP_BITFVAL(FS453_PWR_MGNT_GTLIO_PD,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_PLL_PD,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_CLKOFF,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_CLK_SOFF,   FS453_PWR_MGNT_CLK_SOFF_HDTV_CLK_OFF) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_D_LP,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_C_LP,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_B_LP,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_A_LP,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_BGAP_OFF,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_D_OFF,  FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_C_OFF,  FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_B_OFF,  FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_A_OFF,  FS453_SET_DISABLE) );
  
    rc = Fs453WriteRegister(FS453_PWR_MGNT, &data); //0x202//data = 0x0204
  
    return rc;
}

//-----------------------------------------------------------------------------
//
//  Function: Fs453DACOff
//
//  This function disables DAC of FS453.
//
//  Parameters:
//      None.
//
//  Returns:
//      Returns TRUE if successful, otherwise returns FALSE.
//
//-----------------------------------------------------------------------------
BOOL Fs453DACOff(TVOUT_DAC dac)
{
    BOOL rc = FALSE;
    DWORD data;
  
    // Power on DACs
    data = ( CSP_BITFVAL(FS453_PWR_MGNT_GTLIO_PD,   FS453_SET_DISABLE) | //GTLIO power down mode
         CSP_BITFVAL(FS453_PWR_MGNT_PLL_PD,   FS453_SET_DISABLE) | // PLL power donw mode
         CSP_BITFVAL(FS453_PWR_MGNT_CLKOFF,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_CLK_SOFF,   FS453_PWR_MGNT_CLK_SOFF_HDTV_CLK_OFF) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_D_LP,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_C_LP,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_B_LP,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_A_LP,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_BGAP_OFF,   FS453_SET_DISABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_D_OFF,  FS453_SET_ENABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_C_OFF,  FS453_SET_ENABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_B_OFF,  FS453_SET_ENABLE) |
         CSP_BITFVAL(FS453_PWR_MGNT_DAC_A_OFF,  FS453_SET_ENABLE) );
  
    rc = Fs453WriteRegister(FS453_PWR_MGNT, &data);  //data = 0x020F
  
    return rc;
}

//-----------------------------------------------------------------------------
//
//  Function: Fs453Deinit
//
//  This function maps the peripheral registers of the audio devices for
//  direct access by the driver.
//
//  Parameters:
//      None.
//
//  Returns:
//      Returns TRUE if successful, otherwise returns FALSE.
//
//-----------------------------------------------------------------------------
BOOL Fs453Deinit(void)
{
    // Close TV, if I2C is available
  
    // Release I2C
    if(m_hI2C != NULL)
    {
        CloseHandle(m_hI2C);
        m_hI2C = NULL;
    }
    return TRUE;
}

BOOL Fs453ColorBarOn(BOOL bON)
{
    BOOL rc;
  
    DWORD data;
    Fs453ReadRegister(FS453_MISC_45, &data);
    if(bON)
    {
        data |= 0x02;
    }
    else
    {
        data &= (~0x02);
    }
    rc = Fs453WriteRegister(FS453_MISC_45, &data);  //data = 0x02
  
    return rc;

}

void fs453_dump(void)
{
    DWORD data;

    data = 0;
    Fs453ReadRegister(FS453_QPR, &data);  // 3
    RETAILMSG(1, (_T("FS453_QPR 0x%x\r\n"), data));
    
    data = 0;
    Fs453ReadRegister(FS453_PWR_MGNT, &data); // 4
    RETAILMSG(1, (_T("FS453_PWR_MGNT 0x%x\r\n"), data));
    
    data = 0;
    Fs453ReadRegister(FS453_IHO, &data);  // 5
    RETAILMSG(1, (_T("FS453_IHO 0x%x\r\n"), data));
    data = 0;
    Fs453ReadRegister(FS453_IVO, &data);  
    RETAILMSG(1, (_T("FS453_IVO 0x%x\r\n"), data));
    data = 0;
    Fs453ReadRegister(FS453_IHW, &data);  
    RETAILMSG(1, (_T("FS453_IHW 0x%x\r\n"), data));

    data = 0;
    Fs453ReadRegister(FS453_VSC, &data);  // 6
    RETAILMSG(1, (_T("FS453_VSC 0x%x\r\n"), data));
    data = 0;
    Fs453ReadRegister(FS453_HSC, &data);  
    RETAILMSG(1, (_T("FS453_HSC 0x%x\r\n"), data));
    
    data = 0;
    Fs453ReadRegister(FS453_BYPASS, &data); // 7
    RETAILMSG(1, (_T("FS453_BYPASS 0x%x\r\n"), data));

    data = 0;
    Fs453ReadRegister(FS453_MISC, &data); // 8
    RETAILMSG(1, (_T("FS453_MISC 0x%x\r\n"), data));
     
    data = 0;
    Fs453ReadRegister(FS453_NCON, &data); // 9  
    RETAILMSG(1, (_T("FS453_NCON 0x%x\r\n"), data));
    data = 0;
    Fs453ReadRegister(FS453_NCOD, &data); 
    RETAILMSG(1, (_T("FS453_NCOD 0x%x\r\n"), data));
    data = 0;
    Fs453ReadRegister(FS453_PLLM_PUMPCNTL, &data);  
    RETAILMSG(1, (_T("FS453_PLLM_PUMPCNTL 0x%x\r\n"), data));
    data = 0;
    Fs453ReadRegister(FS453_PLLN, &data); 
    RETAILMSG(1, (_T("FS453_PLLN 0x%x\r\n"), data));
    data = 0;
    Fs453ReadRegister(FS453_PLL_POSTDIV, &data);  
    RETAILMSG(1, (_T("FS453_PLL_POSTDIV 0x%x\r\n"), data));
    
    data = 0;
    Fs453ReadRegister(FS453_VID_CNTL0, &data);  // 10
    RETAILMSG(1, (_T("FS453_VID_CNTL0 0x%x\r\n"), data));

    data = 0;
    Fs453ReadRegister(FS453_DAC_CNTL, &data); // 12
    RETAILMSG(1, (_T("FS453_DAC_CNTL 0x%x\r\n"), data));

    data = 0;
    Fs453ReadRegister(FS453_FIFO_LAT, &data); // 13
    RETAILMSG(1, (_T("FS453_FIFO_LAT 0x%x\r\n"), data));


    data = 0;
    Fs453ReadRegister(FS453_MISC_46, &data);  // 14
    RETAILMSG(1, (_T("FS453_MISC_46 0x%x\r\n"), data));
    data = 0;
    Fs453ReadRegister(FS453_MISC_47, &data);  
    RETAILMSG(1, (_T("FS453_MISC_47 0x%x\r\n"), data));
    data = 0;
    Fs453ReadRegister(FS453_FIFO_LAT, &data); 
    RETAILMSG(1, (_T("FS453_FIFO_LAT 0x%x\r\n"), data));
    data = 0;
    Fs453ReadRegister(FS453_FIFO_LAT, &data); 
    RETAILMSG(1, (_T("FS453_FIFO_LAT 0x%x\r\n"), data));
    data = 0;
    Fs453ReadRegister(FS453_FIFO_LAT, &data); 
    RETAILMSG(1, (_T("FS453_FIFO_LAT 0x%x\r\n"), data));


    data = 0;
    Fs453ReadRegister(FS453_CR, &data); // 1,2,11
    RETAILMSG(1, (_T("FS453_CR 0x%x\r\n"), data));
}


#ifndef __cplusplus
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -