?? asc0.c
字號:
//****************************************************************************
// @Module Asynchronous/Synchronous Serial Interface (ASC0)
// @Filename ASC0.C
// @Project svm.dav
//----------------------------------------------------------------------------
// @Controller Infineon XC167CI-16F40
//
// @Compiler Keil
//
// @Codegenerator 2.1
//
// @Description This file contains functions that use the ASC0 module.
//
//----------------------------------------------------------------------------
// @Date 19.12.2003 11:31:19
//
//****************************************************************************
// USER CODE BEGIN (ASC0_General,1)
// USER CODE END
//****************************************************************************
// @Project Includes
//****************************************************************************
#include "MAIN.H"
// USER CODE BEGIN (ASC0_General,2)
// USER CODE END
//****************************************************************************
// @Macros
//****************************************************************************
// USER CODE BEGIN (ASC0_General,3)
// USER CODE END
//****************************************************************************
// @Defines
//****************************************************************************
// USER CODE BEGIN (ASC0_General,4)
// USER CODE END
//****************************************************************************
// @Typedefs
//****************************************************************************
// USER CODE BEGIN (ASC0_General,5)
// USER CODE END
//****************************************************************************
// @Imported Global Variables
//****************************************************************************
// USER CODE BEGIN (ASC0_General,6)
// USER CODE END
//****************************************************************************
// @Global Variables
//****************************************************************************
// USER CODE BEGIN (ASC0_General,7)
// USER CODE END
//****************************************************************************
// @External Prototypes
//****************************************************************************
// USER CODE BEGIN (ASC0_General,8)
// USER CODE END
//****************************************************************************
// @Prototypes Of Local Functions
//****************************************************************************
// USER CODE BEGIN (ASC0_General,9)
// USER CODE END
//****************************************************************************
// @Function void ASC0_vInit(void)
//
//----------------------------------------------------------------------------
// @Description This is the initialization function of the ASC0 function
// library. It is assumed that the SFRs used by this library
// are in its reset state.
//
//----------------------------------------------------------------------------
// @Returnvalue None
//
//----------------------------------------------------------------------------
// @Parameters None
//
//----------------------------------------------------------------------------
// @Date 19.12.2003
//
//****************************************************************************
// USER CODE BEGIN (Init,1)
// USER CODE END
void ASC0_vInit(void)
{
// USER CODE BEGIN (Init,2)
// USER CODE END
/// -----------------------------------------------------------------------
/// Configuration of the ASC0 Baudrate Generator:
/// -----------------------------------------------------------------------
/// - additionally reduce serial clock to 2
/// - required baud rate = 9,600 kbaud
/// - real baud rate = 9,615 kbaud
/// - deviation = 0,160 %
//ASC0_BG = 0x0081; // load ASC0 baud rate time reload register
/// -----------------------------------------------------------------------
/// Configuration of the ASC0 Operation Mode:
/// -----------------------------------------------------------------------
/// - 8-bit data asychronous operation with one stop bit
/// - receiver is enabled
//ASC0_CON = 0x0011; // load ASC0 control register
/// -----------------------------------------------------------------------
/// FIFO Configuration:
/// -----------------------------------------------------------------------
/// - receive FIFO is disabled
/// - transmit FIFO is disabled
//ASC0_RXFCON = 0x0102; // load ASC0 receive FIFO control register
//ASC0_TXFCON = 0x0102; // load ASC0 transmit FIFO control register
/// -----------------------------------------------------------------------
/// Configuration of the used ASC0 Port Pins:
/// -----------------------------------------------------------------------
/// - P3.10 is used for ASC Transmit Data Output (TxDA0)
/// - P3.11 is used for ASC0 Receive data Input (RxDA0)
//ALTSEL0P3 |= 0x0400; // select alternate output function
//P3 = (P3 & ~(uword)0x0400) | 0x0400; //set data register
//DP3 = (DP3 & ~(uword)0x0400) | 0x0400; //set direction register
/// -----------------------------------------------------------------------
/// Configuration of the used ASC0 Interrupts:
/// -----------------------------------------------------------------------
// USER CODE BEGIN (ASC0_Function,3)
//ASC0_TIC_IR=1;
// USER CODE END
//ASC0_CON |= 0x8000; // enable baud rate generator
ASC0_CON = 0x8811; // load ASC0 control register
ASC0_BG = 0x000E; // load ASC0 baud rate time reload register 38400
ASC0_FDV = 0x0076;
ASC0_RXFCON = 0x0102; // load ASC0 receive FIFO control register
ASC0_TXFCON = 0x0102; // load ASC0 transmit FIFO control register
ASC1_CON = 0x8811; // load ASC1 control register
ASC1_BG = 0x000E; // load ASC1 baud rate time reload register 38400
ASC1_FDV = 0x0076;
ASC1_RXFCON = 0x0102; // load ASC1 receive FIFO control register
ASC1_TXFCON = 0x0102; // load ASC1 transmit FIFO control register
ALTSEL0P3 |= 0x0420; // 10bit-1,5bit-1: select alternate output function XC164需要配置
P3 |= 0x0400; // 10bit-1: set data register
DP3 = (DP3 & ~(unsigned int)0x0802) | 0x0420; // 11bit-0,10bit-1,5bit-1,1bit-0: set direction register
} // End of function ASC0_vInit
//****************************************************************************
// @Function void ASC0_vSendData(uword uwData)
//
//----------------------------------------------------------------------------
// @Description This function writes a send data initialization word into
// the transmit buffer register.
//
// Note:
// In a multiprocessor system the master with this function
// has the possibility to send data to the selected slave. To
// achieve this, the 9th bit must set on zero.
//
//----------------------------------------------------------------------------
// @Returnvalue None
//
//----------------------------------------------------------------------------
// @Parameters uwData:
// Data to be send
//
//----------------------------------------------------------------------------
// @Date 19.12.2003
//
//****************************************************************************
// USER CODE BEGIN (SendData,1)
// USER CODE END
void ASC0_vSendData(uword uwData)
{
ASC0_TBIC_IR = 0; // reset transmit buffer interrupt request
ASC0_TBUF = uwData; // load transmit buffer register
} // End of function ASC0_vSendData
//****************************************************************************
// @Function uword ASC0_uwGetData(void)
//
//----------------------------------------------------------------------------
// @Description This function reads out the content of the receive buffer
// register which contains the received data.
//
//----------------------------------------------------------------------------
// @Returnvalue data that has been received
//
//----------------------------------------------------------------------------
// @Parameters None
//
//----------------------------------------------------------------------------
// @Date 19.12.2003
//
//****************************************************************************
// USER CODE BEGIN (GetData,1)
// USER CODE END
uword ASC0_uwGetData(void)
{
ASC0_RIC_IR = 0; // reset receive interrupt request
return(ASC0_RBUF); // return receive buffer register
} // End of function ASC0_uwGetData
// USER CODE BEGIN (ASC0_General,10)
// USER CODE END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -