f51bce3fed
We currently only support building with CCS and SCons is not using. bsp/rm48x50/HALCoGen/HALCoGen.{hcg,dil} is the HALCoGen project file. You may need to regenerate the source file as you like, providing that: 1, IRQ is in Dispatch Mode and the table entry is IRQ_Handler. The channel 5 in enabled and connected to IRQ. 2, RTI driver is enabled and compare3 source is selected to counter1 and the compare3 will generate tick in the period of 10ms. This value is coresponding with RT_TICK_PER_SECOND in rtconfig.h. In CCS, you need to create a new CCS project and create link folders pointing at bsp/rm48x50, libcpu/arm/rm48x50 and src/, include/. Remember to add the include path to the Build Properties.
210 lines
4.9 KiB
C
210 lines
4.9 KiB
C
/** @file lin.h
|
|
* @brief LIN Driver Definition File
|
|
* @date 23.May.2013
|
|
* @version 03.05.01
|
|
*
|
|
*/
|
|
|
|
/* (c) Texas Instruments 2009-2013, All rights reserved. */
|
|
|
|
|
|
#ifndef __LIN_H__
|
|
#define __LIN_H__
|
|
|
|
#include "reg_lin.h"
|
|
|
|
|
|
/** @def LIN_BREAK_INT
|
|
* @brief Alias for break detect interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_BREAK_INT 0x00000001U
|
|
|
|
|
|
/** @def LIN_WAKEUP_INT
|
|
* @brief Alias for wakeup interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_WAKEUP_INT 0x00000002U
|
|
|
|
|
|
/** @def LIN_TO_INT
|
|
* @brief Alias for time out interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_TO_INT 0x00000010U
|
|
|
|
|
|
/** @def LIN_TOAWUS_INT
|
|
* @brief Alias for time out after wakeup signal interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_TOAWUS_INT 0x00000040U
|
|
|
|
|
|
/** @def LIN_TOA3WUS_INT
|
|
* @brief Alias for time out after 3 wakeup signals interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_TOA3WUS_INT 0x00000080U
|
|
|
|
|
|
/** @def LIN_TX_READY
|
|
* @brief Alias for transmit buffer ready flag
|
|
*
|
|
* Used with linIsTxReady.
|
|
*/
|
|
#define LIN_TX_READY 0x00000100U
|
|
|
|
|
|
/** @def LIN_RX_INT
|
|
* @brief Alias for receive buffer ready interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_RX_INT 0x00000200U
|
|
|
|
|
|
/** @def LIN_ID_INT
|
|
* @brief Alias for received matching identifier interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_ID_INT 0x00002000U
|
|
|
|
|
|
/** @def LIN_PE_INT
|
|
* @brief Alias for parity error interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_PE_INT 0x01000000U
|
|
|
|
|
|
/** @def LIN_OE_INT
|
|
* @brief Alias for overrun error interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_OE_INT 0x02000000U
|
|
|
|
|
|
/** @def LIN_FE_INT
|
|
* @brief Alias for framing error interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_FE_INT 0x04000000U
|
|
|
|
|
|
/** @def LIN_NRE_INT
|
|
* @brief Alias for no response error interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_NRE_INT 0x08000000U
|
|
|
|
|
|
/** @def LIN_ISFE_INT
|
|
* @brief Alias for inconsistent sync field error interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_ISFE_INT 0x10000000U
|
|
|
|
|
|
/** @def LIN_CE_INT
|
|
* @brief Alias for checksum error interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_CE_INT 0x20000000U
|
|
|
|
|
|
/** @def LIN_PBE_INT
|
|
* @brief Alias for physical bus error interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_PBE_INT 0x40000000U
|
|
|
|
|
|
/** @def LIN_BE_INT
|
|
* @brief Alias for bit error interrupt flag
|
|
*
|
|
* Used with linEnableNotification, linDisableNotification.
|
|
*/
|
|
#define LIN_BE_INT 0x80000000U
|
|
|
|
|
|
/** @struct linBase
|
|
* @brief LIN Register Definition
|
|
*
|
|
* This structure is used to access the LIN module registers.
|
|
*/
|
|
/** @typedef linBASE_t
|
|
* @brief LIN Register Frame Type Definition
|
|
*
|
|
* This type is used to access the LIN Registers.
|
|
*/
|
|
|
|
enum linPinSelect
|
|
{
|
|
PIN_LIN_TX = 0U,
|
|
PIN_LIN_RX = 1U
|
|
};
|
|
|
|
/**
|
|
* @defgroup LIN LIN
|
|
* @brief Local Interconnect Network Module.
|
|
*
|
|
* The LIN standard is based on the SCI (UART) serial data link format. The communication concept is
|
|
* single-master/multiple-slave with a message identification for multi-cast transmission between any network
|
|
* nodes.
|
|
*
|
|
* Related Files
|
|
* - reg_lin.h
|
|
* - lin.h
|
|
* - lin.c
|
|
* @addtogroup LIN
|
|
* @{
|
|
*/
|
|
|
|
/* LIN Interface Functions */
|
|
void linInit(void);
|
|
void linSetFunctional(linBASE_t *lin, uint32 port);
|
|
void linSendHeader(linBASE_t *lin, uint8 identifier);
|
|
void linSendWakupSignal(linBASE_t *lin);
|
|
void linEnterSleep(linBASE_t *lin);
|
|
void linSoftwareReset(linBASE_t *lin);
|
|
uint32 linIsTxReady(linBASE_t *lin);
|
|
void linSetLength(linBASE_t *lin, uint32 length);
|
|
void linSend(linBASE_t *lin, uint8 * data);
|
|
uint32 linIsRxReady(linBASE_t *lin);
|
|
uint32 linTxRxError(linBASE_t *lin);
|
|
uint32 linGetIdentifier(linBASE_t *lin);
|
|
void linGetData(linBASE_t *lin, uint8 * const data);
|
|
void linEnableNotification(linBASE_t *lin, uint32 flags);
|
|
void linDisableNotification(linBASE_t *lin, uint32 flags);
|
|
void linEnableLoopback(linBASE_t *lin, loopBackType_t Loopbacktype);
|
|
void linDisableLoopback(linBASE_t *lin);
|
|
|
|
/** @fn void linNotification(linBASE_t *lin, uint32 flags)
|
|
* @brief Interrupt callback
|
|
* @param[in] lin - lin module base address
|
|
* @param[in] flags - copy of error interrupt flags
|
|
*
|
|
* This is a callback that is provided by the application and is called upon
|
|
* an interrupt. The parameter passed to the callback is a copy of the
|
|
* interrupt flag register.
|
|
*/
|
|
void linNotification(linBASE_t *lin, uint32 flags);
|
|
|
|
/**@}*/
|
|
#endif
|