?? des_mc33879.c
字號:
/*******************************************************************************/
/**
Copyright (c) 2007 Freescale Semiconductor
\file des_MC33879.c
\brief Functions for Configurable Octal Serial Switch MC33879
\author Freescale Semiconductor
\author B05114
\version 0.2
\date March/2008
*/
/*******************************************************************************/
/** Variable types and common definitions */
#include "typedefs.h"
/** GPIO definitions */
#include "lle_GPIO.h"
/** SPI definitions */
#include "lle_SPI.h"
/** COSS definitions */
#include "des_MC33879.h"
/** Backup variables for COSS configuration */
UINT8 u8COSS_OpenLoad_Value = COSS_OPLOAD_INIT;
UINT8 u8COSS_Outs_Value = COSS_OUTS_INIT;
/*******************************************************************************/
/**
* \brief Write MC33879 register
* \author B05114
* \param u8COSS_OpenLoad: Open load detection configuration \n
u8COSS_Out: Outputs selection
* \return void (Received data are stored in array u8COSS_Frame)
*/
void des_MC33879_SendCommand(UINT8 u8COSS_OpenLoad, UINT8 u8COSS_Out)
{
UINT8 u8COSS_Frame[2]; /* Data array to be sent */
u8COSS_Frame[0] = u8COSS_OpenLoad;
u8COSS_Frame[1] = u8COSS_Out;
CS_MC33879 = 0; /* CS low */
lle_SPI_16(u8COSS_Frame); /* Send data to MC33879 */
CS_MC33879 = 1; /* CS high */
}
/*******************************************************************************/
/**
* \brief Set MC33879 operation mode
* \author B05114
* \param u8COSS_Mode: Operation mode: COSS_SLEEP, COSS_NORMAL
* \return void
*/
void des_MC33879_SetMode(UINT8 u8COSS_Mode)
{
CS_MC33879 = 1; /* Chip select on high level */
if(!u8COSS_Mode) EN_MC33879 = 0; /* Sleep mode */
if(u8COSS_Mode) EN_MC33879 = 1; /* Normal mode */
}
/*******************************************************************************/
/**
* \brief MC33879 initial default configuration
* \author B05114
* \param void
* \return void
*/
void des_MC33879_Config(void)
{
des_MC33879_SendCommand(COSS_OPLOAD_INIT, COSS_OUTS_INIT);
}
/*******************************************************************************/
/**
* \brief Outputs control
* \author B05114
* \param u8COSSout: Selected COSS output channel, COSS_OUT1 to COSS_OUT8 \n
u8COSS_State: ON, OFF.
* \return void
*/
void des_MC33879_Output_Control(UINT8 u8COSS_Out, UINT8 u8COSS_State)
{
if(u8COSS_State) u8COSS_Outs_Value |= u8COSS_Out; /* Set bits */
if(!u8COSS_State) u8COSS_Outs_Value &= ~u8COSS_Out; /* Clear bits */
/* Update command register */
des_MC33879_SendCommand(u8COSS_OpenLoad_Value, u8COSS_Outs_Value);
}
/*******************************************************************************/
/**
* \brief Select open load detection
* \author B05114
* \param u8COSS_OpLoad: COSS_OPLOAD1 to COSS_OPLOAD8 \n
u8OpLoadsel: ENABLE, DISABLE
* \return void
*/
void des_MC33879_OpenLoad_Detect(UINT8 u8COSS_OpLoad, UINT8 u8OpLoadsel)
{
if(u8OpLoadsel) u8COSS_OpenLoad_Value |= u8COSS_OpLoad; /* Set bits */
if(!u8OpLoadsel) u8COSS_OpenLoad_Value &= ~u8COSS_OpLoad; /* Clear bits */
/* Update command register */
des_MC33879_SendCommand(u8COSS_OpenLoad_Value, u8COSS_Outs_Value);
}
/*******************************************************************************/
/**
* \brief Read outputs status in fault register
* \author B05114
* \param void
* \return UINT8 value containing the outputs status
*/
UINT8 des_MC33879_Get_Status(void)
{
UINT8 u8COSS_Frame[2]; /* Data array to be sent */
u8COSS_Frame[0] = u8COSS_OpenLoad_Value;
u8COSS_Frame[1] = u8COSS_Outs_Value;
CS_MC33879 = 0; /* CS low */
lle_SPI_16(u8COSS_Frame); /* Send data to MC33879 */
CS_MC33879 = 1; /* CS high */
return u8COSS_Frame[1];
}
/*******************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -