亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? des_mc10xs3412.c

?? BCM 控制demo源代碼
?? C
字號:
/*******************************************************************************/
/**
Copyright (c) 2007 Freescale Semiconductor
\file       des_MC10XS3412.c
\brief      Functions for high side switch (MC10XS3412) handling 
\author     Freescale Semiconductor
\author     B05114
\version    0.1
\date       May/2007
*/
/*******************************************************************************/

/** Variable types and common definitions */
#include "typedefs.h"   
   
/** GPIO definitions  */
#include "lle_GPIO.h"

/** SPI definitions */
#include "lle_SPI.h"

/** MC10XS definitions */
#include "des_MC10XS3412.h"

    
/** Wadtchdog bit*/ 
static UINT8 u8XS10_WDIN = 0; 

/* Back-up variables */ 
UINT8 u8XS10_CONFREG1[4] = {XS10_CONFR1_0_INIT, XS10_CONFR1_1_INIT,
                            XS10_CONFR1_2_INIT, XS10_CONFR1_3_INIT};

UINT8 u8XS10_OCREG_XEN[4] = {XS10_OCR_0_XENINIT, XS10_OCR_1_XENINIT,
                             XS10_OCR_2_XENINIT, XS10_OCR_3_XENINIT};

UINT8 u8XS10_OCREG[4] = {XS10_OCR_0_INIT, XS10_OCR_1_INIT,
                         XS10_OCR_2_INIT, XS10_OCR_3_INIT};

UINT8 u8XS10_GCREG = XS10_GCR_INIT;

/*******************************************************************************/
/**
* \brief    Write MC10XS3412 register and read Serial Output response
* \author   B05114
* \param    u8XS10_Command: Configuration command \n
            u8XS10_Data: Configuration data
* \return   void (Received data are stored in array u8XS10_Frame)
*/
void des_MC10XS3412_SendCommand(UINT8 u8XS_Command, UINT8 u8XS_Data)
{      
    UINT8 u8XS10_Frame[2];    /* Data array to be sent */     
                     
    u8XS10_Frame[0] = u8XS_Command | u8XS10_WDIN;
    u8XS10_Frame[1] = u8XS_Data; 
         
    CS_MC10XS3412 = 0;          /* CS low */                    
    lle_SPI_16(u8XS10_Frame);  /* Send data to MC10XS3412 */               
    CS_MC10XS3412 = 1;          /* CS high */ 
    
    u8XS10_WDIN ^= 0x80;    /* Toggle watchdog bit */  
}

/*******************************************************************************/
/**
* \brief    Clear MC10XS3412 watchdog
* \author   B05114
* \param    void
* \return   void
*/
void des_MC10XS3412_ClrWDT(void)
{ 
    des_MC10XS3412_SendCommand(XS_STATR, 0);     
}

/*******************************************************************************/
/**
* \brief    Set MC10XS3412 operation mode
* \author   B05114
* \param    u8XS_Mode: Operation mode: XS_SLEEP, XS_NORMAL  
* \return   void
*/
void des_MC10XS3412_SetMode(UINT8 u8XS_Mode)
{
    RST_MC10XS3412 = 0;     /* All inputs to 0 set the MC10XS3412 */
    IN0_MC10XS3412 = 0;     /* in low-current sleep mode */
    IN1_MC10XS3412 = 0;
    IN2_MC10XS3412 = 0;
    IN3_MC10XS3412 = 0;  
    
        if(u8XS_Mode)               /* If selected mode is XS_NORMAL */
            RST_MC10XS3412 = 1;     /* generate wake-up event */  
}

/*******************************************************************************/
/**
* \brief    MC10XS3412 initial configuration with values from des_MC10XS3412.h
* \author   B05114
* \param    void
* \return   void
*/
void des_MC10XS3412_Config(void)
{
    des_MC10XS3412_SendCommand(XS_PWMR|XS_HS0, XS10_PWMR_0_INIT);
    des_MC10XS3412_SendCommand(XS_PWMR|XS_HS1, XS10_PWMR_1_INIT);
    des_MC10XS3412_SendCommand(XS_PWMR|XS_HS2, XS10_PWMR_2_INIT);
    des_MC10XS3412_SendCommand(XS_PWMR|XS_HS3, XS10_PWMR_3_INIT);    
    
    des_MC10XS3412_SendCommand(XS_CONFR0|XS_HS0, XS10_CONFR0_0_INIT);
    des_MC10XS3412_SendCommand(XS_CONFR0|XS_HS1, XS10_CONFR0_1_INIT);
    des_MC10XS3412_SendCommand(XS_CONFR0|XS_HS2, XS10_CONFR0_2_INIT);
    des_MC10XS3412_SendCommand(XS_CONFR0|XS_HS3, XS10_CONFR0_3_INIT);
    
    des_MC10XS3412_SendCommand(XS_CONFR1|XS_HS0, XS10_CONFR1_0_INIT);
    des_MC10XS3412_SendCommand(XS_CONFR1|XS_HS1, XS10_CONFR1_1_INIT);
    des_MC10XS3412_SendCommand(XS_CONFR1|XS_HS2, XS10_CONFR1_2_INIT);
    des_MC10XS3412_SendCommand(XS_CONFR1|XS_HS3, XS10_CONFR1_3_INIT);
    
    des_MC10XS3412_SendCommand(XS_OCR|XS_HS0|XS10_OCR_0_XENINIT, XS10_OCR_0_INIT);
    des_MC10XS3412_SendCommand(XS_OCR|XS_HS1|XS10_OCR_1_XENINIT, XS10_OCR_1_INIT);
    des_MC10XS3412_SendCommand(XS_OCR|XS_HS2|XS10_OCR_2_XENINIT, XS10_OCR_2_INIT);
    des_MC10XS3412_SendCommand(XS_OCR|XS_HS3|XS10_OCR_3_XENINIT, XS10_OCR_3_INIT);
    
    des_MC10XS3412_SendCommand(XS_GCR, XS10_GCR_INIT);
}

/*******************************************************************************/
/**
* \brief    Outputs configuration
* \author   B05114
* \param    u8HSout: Selected HS output channel, XS_HS0 to XS_HS3   \n
            u8Control: Direct IN control: XS_DIR_EN, XS_DIR_DIS     \n
            u8SlewRate: XS_SLEW_LOW, XS_SLEW_MED, XS_SLEW_HIGH      \n
            u8SwitchDelay: XS_NO_DELAY, XS_DELAY_16, ..., XS_DELAY_112 
* \return   void
*/
void des_MC10XS3412_HS_Configuration(UINT8 u8HSout, UINT8 u8Dir_Control,
                                     UINT8 u8SlewRate, UINT8 u8SwitchDelay)
{                           
    des_MC10XS3412_SendCommand(XS_CONFR0 | u8HSout,
                               u8Dir_Control | u8SlewRate | u8SwitchDelay);
}

/*******************************************************************************/
/**
* \brief    Outputs control
* \author   B05114
* \param    u8HSout: Selected HS output channel, XS_HS0 to XS_HS3    \n
            u8HS_State: XS_ON, XS_OFF,                               \n
            u8HS_PWM: PWM duty cycle, 0x00 to 0x7F. 
* \return   void
*/
void des_MC10XS3412_HS_Control(UINT8 u8HSout, UINT8 u8HS_State, UINT8 u8HS_PWM)
{
    des_MC10XS3412_SendCommand(XS_PWMR | u8HSout, u8HS_State | (0x7F & u8HS_PWM)); 
}


/*******************************************************************************/
/**
* \brief    PWM module selection
* \author   B05114
* \param    u8HSout: Selected HS output channel, XS_HS0 to XS_HS3    \n
            u8PWMSelect: XS_PWM_DISABLED, XS_PWM_IN0CLK, XS_PWM_INTCLK
* \return   void
*/
void des_MC10XS3412_Select_PWM_Module(UINT8 u8PWMSelect)
{
    u8XS10_GCREG &= 0x3F;
    u8XS10_GCREG |= u8PWMSelect;     /* Update backup variable */

    des_MC10XS3412_SendCommand(XS_GCR, u8XS10_GCREG );   /* Update register */
}

/*******************************************************************************/
/**
* \brief    Select open load detection
* \author   B05114
* \param    u8HSout: Selected HS output channel, XS_HS0 to XS_HS3    \n
            u8OLselect: XS_NO_LOAD, XS_LED, XS_BULB 
* \return   void
*/ 
void des_MC10XS3412_OpenLoad_Detect(UINT8 u8HSout, UINT8 u8OLselect)
{
    u8XS10_CONFREG1[u8HSout] &= 0xF1;
    u8XS10_CONFREG1[u8HSout] |= u8OLselect;    

   /* Update register */
    des_MC10XS3412_SendCommand(XS_CONFR1 | u8HSout, u8XS10_CONFREG1[u8HSout]);
}

/*******************************************************************************/
/**
* \brief    Select current sense ratio
* \author   B05114
* \param    u8HSout: Selected HS output channel, XS_HS0 to XS_HS3    \n
            u8SenseRatio: XS_CSNS_LOW, XS_CSNS_HIGH
* \return   void
*/
void des_MC10XS3412_Select_CurrentSense(UINT8 u8HSout, UINT8 u8SenseRatio)
{
    u8XS10_CONFREG1[u8HSout] &= 0xFE;
        
        if(u8SenseRatio)    u8XS10_CONFREG1[u8HSout] |= XS_CSNS_HIGH;              

    /* Update register */
    des_MC10XS3412_SendCommand(XS_CONFR1 | u8HSout, u8XS10_CONFREG1[u8HSout]);
}


/*******************************************************************************/
/**
* \brief    Select current profile
* \author   B05114
* \param    u8HSout: Selected HS output channel, XS_HS0 to XS_HS3               \n
            u8Xenon: XS_XENON_ENABLED, XS_XENON_DISABLED                        \n
            u8CoolCurve: XS_BULB_COOL_LOW, XS_BULB_COOL_MED XS_BULB_COOL_HIGH   \n 
            u8InrushCurve: XS_INRUSH_LOW, XS_INRUSH_MED, XS_INRUSH_HIGH
* \return   void
*/
void des_MC10XS3412_Select_CurrentProfile(UINT8 u8HSout, UINT8 u8Xenon,
                                        UINT8 u8CoolCurve, UINT8 u8InrushCurve)
{
    u8XS10_OCREG_XEN[u8HSout] = u8Xenon;
    
    u8XS10_OCREG[u8HSout] &= 0x07;
    u8XS10_OCREG[u8HSout] |= (u8CoolCurve | u8InrushCurve);
    
    /* Update register */
    des_MC10XS3412_SendCommand(XS_OCR | u8HSout | u8XS10_OCREG_XEN[u8HSout],
                               u8XS10_OCREG[u8HSout]);
}

/*******************************************************************************/
/**
* \brief    Select output steady state
* \author   B05114
* \param    u8HSout: Selected HS output channel, XS_HS0 to XS_HS3    \n
            u8SteadyState: XS_STEADY_OCL0, XS_STEADY_OCL1, XS_STEADY_OCL2
* \return   void
*/
void des_MC10XS3412_Select_SteadyState(UINT8 u8HSout, UINT8 u8SteadyState)
{    
    u8XS10_OCREG[u8HSout] &= 0xF9;
    u8XS10_OCREG[u8HSout] |= u8SteadyState;
    
    /* Update register */
    des_MC10XS3412_SendCommand(XS_OCR | u8HSout | u8XS10_OCREG_XEN[u8HSout],
                               u8XS10_OCREG[u8HSout]);
}

/*******************************************************************************/
/**
* \brief    Select overcurrent mode
* \author   B05114
* \param    u8HSout: Selected HS output channel, XS_HS0 to XS_HS3    \n
            u8OCmode: XS_OC_INRUSH_ONLY, XS_OC_INRUSH_COOLING
* \return   void
*/
void des_MC10XS3412_Select_OverCurrent(UINT8 u8HSout, UINT8 u8OCmode)
{    
    u8XS10_OCREG[u8HSout] &= 0xFE;
    u8XS10_OCREG[u8HSout] |= u8OCmode;
    
    /* Update register */
    des_MC10XS3412_SendCommand(XS_OCR | u8HSout | u8XS10_OCREG_XEN[u8HSout],
                               u8XS10_OCREG[u8HSout]);
}

/*******************************************************************************/
/**
* \brief    Read STATUS register for an output channel
* \author   B05114
* \param    u8HSout: Selected HS channel for reading, XS_HS0_RD to XS_HS3_RD
* \return   UINT8 value containing the fault register flags
*/
UINT8 des_MC10XS3412_Get_Status(UINT8 u8HSout)
{
    UINT8 u8XS10_Frame[2];
       
    des_MC10XS3412_SendCommand(XS_STATR, u8HSout);  /* Set SOA bits */       
                                          
    u8XS10_Frame[0] = XS_STATR | u8XS10_WDIN;
    u8XS10_Frame[1] = 0; 
         
    CS_MC10XS3412 = 0;          /* CS low */    
    lle_SPI_16(u8XS10_Frame);  /* Send data to MC10XS3412 */    
    CS_MC10XS3412 = 1;          /* CS high */ 
    
    u8XS10_WDIN ^= 0x80;    /* Toggle watchdog bit */  
    
    return u8XS10_Frame[1]; 
}

/*******************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩中文欧美在线| 日韩精品一区第一页| 欧美日韩日本视频| 国产在线麻豆精品观看| 亚洲综合色视频| 中文字幕乱码一区二区免费| 欧美一区二区三区四区在线观看| 国产东北露脸精品视频| 麻豆成人久久精品二区三区红 | 一个色综合网站| 国产欧美日韩在线观看| 久久日韩粉嫩一区二区三区| 777午夜精品视频在线播放| 色一情一乱一乱一91av| 国产精品自拍av| 国产精品亚洲第一| 美女视频一区在线观看| 日本午夜精品视频在线观看| 亚洲小说欧美激情另类| 亚洲女人的天堂| 亚洲欧美二区三区| 久久激情综合网| 欧美亚洲愉拍一区二区| 欧美妇女性影城| 亚洲日本护士毛茸茸| 日韩专区一卡二卡| 中文字幕一区二区三区四区不卡| 亚洲综合色丁香婷婷六月图片| 国产资源在线一区| 欧美日韩美女一区二区| 中文字幕在线免费不卡| 日本网站在线观看一区二区三区| 北岛玲一区二区三区四区| 91精品国产综合久久精品麻豆 | 久久av中文字幕片| 欧洲一区二区三区在线| 国产日韩欧美麻豆| 亚洲成人福利片| 成人午夜激情影院| 日韩欧美一区在线| 综合av第一页| 国产成人超碰人人澡人人澡| 精品婷婷伊人一区三区三| 久久视频一区二区| 五月开心婷婷久久| 成人性生交大片| 精品久久久久av影院| 亚洲一区在线视频观看| 国产激情一区二区三区四区 | 日本韩国视频一区二区| 亚洲精品一线二线三线| 亚洲a一区二区| 91亚洲精品一区二区乱码| 久久久亚洲精品石原莉奈| 日韩精品一级中文字幕精品视频免费观看| 国产黄色91视频| 精品国产a毛片| 日韩**一区毛片| 欧美午夜精品久久久久久孕妇 | 亚洲一区在线观看视频| 99精品热视频| 国产精品无人区| 9人人澡人人爽人人精品| 日韩伦理免费电影| 93久久精品日日躁夜夜躁欧美| 国产精品成人在线观看| 成人动漫一区二区| 亚洲日本成人在线观看| 色婷婷国产精品久久包臀| 亚洲精选在线视频| 欧美又粗又大又爽| 香蕉乱码成人久久天堂爱免费| 欧美久久久久免费| 久久精品噜噜噜成人av农村| 欧美成人精品3d动漫h| 国产麻豆精品在线| 亚洲精品自拍动漫在线| 4438x亚洲最大成人网| 天天色天天爱天天射综合| 精品久久久久久亚洲综合网 | 91丨九色丨尤物| 一区二区高清免费观看影视大全| 69久久99精品久久久久婷婷| 久久99国产精品久久| 中文幕一区二区三区久久蜜桃| 91蜜桃在线免费视频| 丝袜美腿亚洲一区| 精品国精品自拍自在线| 99久久精品免费精品国产| 亚洲二区在线观看| 久久日一线二线三线suv| 一本到三区不卡视频| 国产主播一区二区三区| 亚洲日本va在线观看| 亚洲黄一区二区三区| 亚洲图片你懂的| 亚洲免费在线观看| 亚洲香蕉伊在人在线观| 亚洲一区二区三区中文字幕| 亚洲综合精品自拍| 日本91福利区| 国内国产精品久久| 亚洲成av人在线观看| 亚洲精品高清在线观看| 久久久国产精品不卡| 日韩欧美一区在线| 5月丁香婷婷综合| 欧美一级精品大片| 欧美一级精品在线| 日韩欧美一级精品久久| 欧美久久一二区| 在线免费观看视频一区| 在线观看一区二区视频| 99re8在线精品视频免费播放| 国产精品一区二区三区四区| 久久99久久精品欧美| 精品中文字幕一区二区| 美女性感视频久久| 韩日av一区二区| 国产91精品欧美| 91免费观看视频在线| 亚洲精品免费在线播放| 蜜桃一区二区三区在线| 日本欧美在线看| 91在线免费播放| 精品日产卡一卡二卡麻豆| 亚洲精品视频在线观看网站| 欧美电影一区二区| 久久精品一区四区| 亚洲va在线va天堂| 成人在线综合网站| 777奇米四色成人影色区| 中文字幕日韩一区| 精品午夜久久福利影院| 日本精品一区二区三区高清 | 国产亚洲欧美中文| 水蜜桃久久夜色精品一区的特点| 国产91在线|亚洲| 欧美成人一区二区三区在线观看| 亚洲精品中文在线观看| 国产黄色91视频| 蜜臀av一区二区在线免费观看| 1区2区3区欧美| 国产精品国产三级国产普通话三级| 91啪九色porn原创视频在线观看| 国产成人精品亚洲午夜麻豆| 精品一区二区免费视频| 日韩黄色小视频| 美美哒免费高清在线观看视频一区二区| 国产精品久久久久天堂| 亚洲成人av一区| 欧美美女直播网站| 亚洲精选免费视频| 美女www一区二区| 中文字幕一区二区三区在线播放| 欧美日韩久久久| 国产精一品亚洲二区在线视频| 一区二区三区四区在线免费观看 | 9191久久久久久久久久久| 国产一区二区剧情av在线| 亚洲男人的天堂av| 精品盗摄一区二区三区| 91国偷自产一区二区开放时间 | 久久综合精品国产一区二区三区| 91视频一区二区| 九九九久久久精品| 亚洲高清免费观看| 国产精品免费aⅴ片在线观看| 欧美日韩一二三区| 波多野结衣中文字幕一区| 麻豆精品在线播放| 亚洲高清免费观看高清完整版在线观看| 国产欧美日韩久久| 日韩一区二区三区免费看| 丰满白嫩尤物一区二区| 青娱乐精品在线视频| 亚洲乱码国产乱码精品精可以看| 久久久久久**毛片大全| 欧美一级黄色大片| 欧美怡红院视频| 99re这里只有精品首页| 国产一区二区三区国产| 日本aⅴ精品一区二区三区| 麻豆91免费观看| 一区2区3区在线看| 亚洲视频一二三| 国产日韩精品一区| 精品日韩在线观看| 51精品视频一区二区三区| 欧美最猛黑人xxxxx猛交| 成人精品视频一区二区三区 | 日韩精品在线看片z| 欧美男人的天堂一二区| 色av一区二区| 99精品国产99久久久久久白柏| 国产精品羞羞答答xxdd| 国产真实乱子伦精品视频| 开心九九激情九九欧美日韩精美视频电影 | 成人高清视频在线| 成人午夜视频福利|