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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? des_mc35xs3400.c

?? BCM 控制demo源代碼
?? C
字號:
/*******************************************************************************/
/**
Copyright (c) 2007 Freescale Semiconductor
\file       des_MC35XS3400.c
\brief      Functions for high side switch (MC35XS3400) 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"

/** MC35XS definitions */
#include "des_MC35XS3400.h"

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

/* Back-up variables */ 
UINT8 u8XS35_CONFREG1[4] = {XS35_CONFR1_0_INIT, XS35_CONFR1_1_INIT,
                            XS35_CONFR1_2_INIT, XS35_CONFR1_3_INIT};

UINT8 u8XS35_OCREG[4] = {XS35_OCR_0_INIT, XS35_OCR_1_INIT,
                         XS35_OCR_2_INIT, XS35_OCR_3_INIT};

UINT8 u8XS35_GCREG = XS35_GCR_INIT;

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

/*******************************************************************************/
/**
* \brief    Clear MC35XS3400 watchdog
* \author   B05114
* \param    void
* \return   void
*/
void des_MC35XS3400_ClrWDT(void)
{ 
    des_MC35XS3400_SendCommand(XS_STATR, 0);     
}

/*******************************************************************************/
/**
* \brief    Set MC35XS3400 operation mode
* \author   B05114
* \param    u8XS_Mode: Operation mode: XS_SLEEP, XS_NORMAL             
* \return   void
*/
void des_MC35XS3400_SetMode(UINT8 u8XS_Mode)
{
    RST_MC35XS3400 = 0;     /* All inputs to 0 set the MC35XS3400 */
    IN0_MC35XS3400 = 0;     /* in low-current sleep mode */
    IN1_MC35XS3400 = 0;
    IN2_MC35XS3400 = 0;
    IN3_MC35XS3400 = 0;  
    
        if(u8XS_Mode)               /* If selected mode is XS_NORMAL */
            RST_MC35XS3400 = 1;     /* generate wake-up event */  
}

/*******************************************************************************/
/**
* \brief    MC35XS3400 initial configuration with values from des_MC35XS3400.h
* \author   B05114
* \param    void
* \return   void
*/
void des_MC35XS3400_Config(void)
{
    des_MC35XS3400_SendCommand(XS_PWMR|XS_HS0, XS35_PWMR_0_INIT);
    des_MC35XS3400_SendCommand(XS_PWMR|XS_HS1, XS35_PWMR_1_INIT);
    des_MC35XS3400_SendCommand(XS_PWMR|XS_HS2, XS35_PWMR_2_INIT);
    des_MC35XS3400_SendCommand(XS_PWMR|XS_HS3, XS35_PWMR_3_INIT);    
    
    des_MC35XS3400_SendCommand(XS_CONFR0|XS_HS0, XS35_CONFR0_0_INIT);
    des_MC35XS3400_SendCommand(XS_CONFR0|XS_HS1, XS35_CONFR0_1_INIT);
    des_MC35XS3400_SendCommand(XS_CONFR0|XS_HS2, XS35_CONFR0_2_INIT);
    des_MC35XS3400_SendCommand(XS_CONFR0|XS_HS3, XS35_CONFR0_3_INIT);
    
    des_MC35XS3400_SendCommand(XS_CONFR1|XS_HS0, XS35_CONFR1_0_INIT);
    des_MC35XS3400_SendCommand(XS_CONFR1|XS_HS1, XS35_CONFR1_1_INIT);
    des_MC35XS3400_SendCommand(XS_CONFR1|XS_HS2, XS35_CONFR1_2_INIT);
    des_MC35XS3400_SendCommand(XS_CONFR1|XS_HS3, XS35_CONFR1_3_INIT);
    
    des_MC35XS3400_SendCommand(XS_OCR|XS_HS0, XS35_OCR_0_INIT);
    des_MC35XS3400_SendCommand(XS_OCR|XS_HS1, XS35_OCR_1_INIT);
    des_MC35XS3400_SendCommand(XS_OCR|XS_HS2, XS35_OCR_2_INIT);
    des_MC35XS3400_SendCommand(XS_OCR|XS_HS3, XS35_OCR_3_INIT);
    
    des_MC35XS3400_SendCommand(XS_GCR, XS35_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_MC35XS3400_HS_Configuration(UINT8 u8HSout, UINT8 u8Dir_Control,
                                     UINT8 u8SlewRate, UINT8 u8SwitchDelay)
{                           
    des_MC35XS3400_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_MC35XS3400_HS_Control(UINT8 u8HSout, UINT8 u8HS_State, UINT8 u8HS_PWM)
{
    des_MC35XS3400_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_MC35XS3400_Select_PWM_Module(UINT8 u8PWMSelect)
{
    u8XS35_GCREG &= 0x3F;
    u8XS35_GCREG |= u8PWMSelect;     /* Update backup variable */

    des_MC35XS3400_SendCommand(XS_GCR, u8XS35_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_MC35XS3400_OpenLoad_Detect(UINT8 u8HSout, UINT8 u8OLselect)
{
    u8XS35_CONFREG1[u8HSout] &= 0xF1;
    u8XS35_CONFREG1[u8HSout] |= u8OLselect;    

   /* Update register */
    des_MC35XS3400_SendCommand(XS_CONFR1 | u8HSout, u8XS35_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_MC35XS3400_Select_CurrentSense(UINT8 u8HSout, UINT8 u8SenseRatio)
{
    u8XS35_CONFREG1[u8HSout] &= 0xFE;
        
        if(u8SenseRatio)    u8XS35_CONFREG1[u8HSout] |= XS_CSNS_HIGH;              

    /* Update register */
    des_MC35XS3400_SendCommand(XS_CONFR1 | u8HSout, u8XS35_CONFREG1[u8HSout]);
}


/*******************************************************************************/
/**
* \brief    Select current profile
* \author   B05114
* \param    u8HSout: Selected HS output channel, XS_HS0 to XS_HS3               \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_MC35XS3400_Select_CurrentProfile(UINT8 u8HSout,
                                          UINT8 u8CoolCurve, UINT8 u8InrushCurve)
{   
    u8XS35_OCREG[u8HSout] &= 0x07;
    u8XS35_OCREG[u8HSout] |= (u8CoolCurve | u8InrushCurve);
    
    /* Update register */
    des_MC35XS3400_SendCommand(XS_OCR | u8HSout, u8XS35_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_MC35XS3400_Select_SteadyState(UINT8 u8HSout, UINT8 u8SteadyState)
{    
    u8XS35_OCREG[u8HSout] &= 0xF9;
    u8XS35_OCREG[u8HSout] |= u8SteadyState;
    
    /* Update register */
    des_MC35XS3400_SendCommand(XS_OCR | u8HSout, u8XS35_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_MC35XS3400_Select_OverCurrent(UINT8 u8HSout, UINT8 u8OCmode)
{    
    u8XS35_OCREG[u8HSout] &= 0xFE;
    u8XS35_OCREG[u8HSout] |= u8OCmode;
    
    /* Update register */
    des_MC35XS3400_SendCommand(XS_OCR | u8HSout, u8XS35_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_MC35XS3400_Get_Status(UINT8 u8HSout)
{
    UINT8 u8XS35_Frame[2];
       
    des_MC35XS3400_SendCommand(XS_STATR, u8HSout);  /* Set SOA bits */       
                                          
    u8XS35_Frame[0] = XS_STATR | u8XS35_WDIN;
    u8XS35_Frame[1] = 0; 
         
    CS_MC35XS3400 = 0;          /* CS low */    
    lle_SPI_16(u8XS35_Frame);  /* Send data to MC35XS3400 */    
    CS_MC35XS3400 = 1;          /* CS high */ 
    
    u8XS35_WDIN ^= 0x80;    /* Toggle watchdog bit */  
    
    return u8XS35_Frame[1]; 
}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天综合色天天| 五月天视频一区| 精品国产成人在线影院| 在线观看91精品国产麻豆| 欧美三级资源在线| 欧美在线观看禁18| 在线观看av一区| 欧美日韩国产一区二区三区地区| 欧美日韩国产一级二级| 日韩午夜三级在线| 久久久九九九九| 1区2区3区欧美| 亚洲最大色网站| 韩国精品主播一区二区在线观看| 国产一区二区三区在线观看免费视频| 精品亚洲porn| 成人av网站在线观看免费| 色偷偷久久人人79超碰人人澡| 在线观看网站黄不卡| 欧美一卡二卡在线观看| 国产欧美日韩精品一区| 一色桃子久久精品亚洲| 午夜精品久久久久久不卡8050| 开心九九激情九九欧美日韩精美视频电影 | 在线视频一区二区免费| 欧美一区二区三区性视频| 久久久99精品免费观看不卡| 中文字幕一区二区三区色视频| 亚洲国产中文字幕在线视频综合| 青青草国产成人av片免费| 国产精品888| 欧美日韩精品综合在线| 久久久久久亚洲综合影院红桃| 亚洲精品视频在线看| 日韩av电影免费观看高清完整版| 成人午夜大片免费观看| 911精品产国品一二三产区| 久久精品在线观看| 日韩精品一二三区| www.日本不卡| 久久综合九色综合欧美就去吻| 一区二区三区欧美亚洲| 成人影视亚洲图片在线| 日韩三级伦理片妻子的秘密按摩| 国产精品久久影院| 国产精品中文字幕日韩精品| 欧美精品一二三区| 亚洲精品国产成人久久av盗摄 | 久久久午夜精品理论片中文字幕| 亚洲欧美一区二区三区国产精品| 激情伊人五月天久久综合| 欧美日韩一本到| 亚洲视频精选在线| 国产一区二区毛片| 日韩区在线观看| 日韩精品一区第一页| 色综合久久久久综合体| 国产精品网站一区| 国产专区欧美精品| 日韩三级在线观看| 日韩电影在线看| 欧美乱妇23p| 日韩国产精品久久久久久亚洲| 色婷婷亚洲一区二区三区| 国产精品少妇自拍| 粉嫩蜜臀av国产精品网站| 久久久久久电影| 国产精品一区二区三区乱码| 久久综合中文字幕| 国产一区二区三区香蕉| 久久理论电影网| 国产精品1024| 国产精品福利一区二区三区| 成人av影视在线观看| 亚洲日本在线观看| 色婷婷激情一区二区三区| 尤物视频一区二区| 欧美三级中文字幕在线观看| 午夜私人影院久久久久| 9191国产精品| 国产麻豆精品视频| 国产欧美日韩麻豆91| av不卡在线播放| 亚洲国产精品久久久男人的天堂| 欧美日韩国产电影| 日本va欧美va精品发布| 亚洲精品一区二区三区四区高清| 韩日欧美一区二区三区| 亚洲国产精品精华液2区45| 99re在线精品| 亚洲成av人**亚洲成av**| 日韩一区二区三区高清免费看看| 久久精品久久99精品久久| 日本一区二区三区在线观看| 91一区在线观看| 丝袜美腿亚洲一区二区图片| 欧美mv日韩mv| 91丨porny丨最新| 视频一区视频二区在线观看| 久久久久久久久久美女| 91免费版pro下载短视频| 亚洲成人一区二区| 久久精品一区四区| 欧美色图一区二区三区| 狠狠色丁香婷婷综合久久片| 国产精品久久夜| 欧美一卡二卡三卡| 91捆绑美女网站| 精品一区精品二区高清| 亚洲女同女同女同女同女同69| 欧美日本一区二区| 大陆成人av片| 男女激情视频一区| 亚洲品质自拍视频| 久久久久国色av免费看影院| 欧美久久高跟鞋激| 成人黄色电影在线 | 99久久精品国产毛片| 蜜臀99久久精品久久久久久软件| 久久久99免费| 91精品国产乱码久久蜜臀| 国产另类ts人妖一区二区| 亚洲图片自拍偷拍| 国产欧美日韩另类视频免费观看| 8v天堂国产在线一区二区| 99久久婷婷国产综合精品电影| 美国十次了思思久久精品导航| 亚洲柠檬福利资源导航| 久久久久久久久久久99999| 日韩一区二区视频| 欧美性生活一区| 成人福利视频在线看| 国产一区二区三区免费| 美女网站在线免费欧美精品| 亚洲亚洲精品在线观看| 一区二区三区日本| 自拍av一区二区三区| 国产无人区一区二区三区| 欧美mv日韩mv| 日韩精品中文字幕在线不卡尤物| 色丁香久综合在线久综合在线观看| 国产v综合v亚洲欧| 国产精品一区二区三区四区| 久久99九九99精品| 久久国产综合精品| 日韩高清不卡一区二区| 日韩高清不卡一区| 蜜臀99久久精品久久久久久软件| 日韩精品乱码免费| 日本人妖一区二区| 极品少妇xxxx精品少妇| 久久超级碰视频| 激情文学综合丁香| 国产精品一区二区在线观看不卡 | 99国产麻豆精品| 色偷偷一区二区三区| 91福利视频在线| 欧美性受极品xxxx喷水| 7777女厕盗摄久久久| 欧美大片一区二区| 久久这里只精品最新地址| 国产日本一区二区| 亚洲天天做日日做天天谢日日欢| 亚洲素人一区二区| 亚洲aⅴ怡春院| 免费人成网站在线观看欧美高清| 久久99精品久久久久婷婷| 国产乱人伦偷精品视频免下载 | 韩国欧美国产1区| 丰满少妇在线播放bd日韩电影| av毛片久久久久**hd| 在线一区二区观看| 日韩一二三区视频| 国产欧美一区二区精品性色| 国产精品成人在线观看| 亚洲一区在线看| 免费观看日韩电影| 99精品视频一区二区三区| 欧美日韩精品三区| 久久久99免费| 亚洲成人免费视频| 丁香婷婷综合网| 欧美日韩亚州综合| 久久久久久一级片| 亚洲第一激情av| 成人av资源下载| 欧美一二三四区在线| 18成人在线观看| 韩国理伦片一区二区三区在线播放 | 国产精品久久久久一区二区三区 | 在线视频中文字幕一区二区| 日韩免费看的电影| 综合激情成人伊人| 久久精品国产久精国产爱| 91视频在线观看| 久久只精品国产| 天堂va蜜桃一区二区三区| 99精品久久久久久| 久久久久国产一区二区三区四区| 亚洲午夜三级在线|