?? des_mc33696.h
字號:
#error "ECHO_DATA_RATE must be between 2000-2800, 4000-5600, 8000-10600 \
or 16000-22400 kbaud in Echo.h header file"
#endif
#ifndef ECHO_ID_LENGTH
#error "You must #define symbol ECHO_ID_LENGTH in Echo.H header file"
#endif
#ifndef ECHO_ID_VALUE
#error "You must #define symbol ECHO_ID_VALUE in Echo.H header file"
#endif
#if ECHO_ID_LENGTH == 2
#define ECHO_IDL 0
#elif ECHO_ID_LENGTH == 4
#define ECHO_IDL 1
#elif ECHO_ID_LENGTH == 5
#define ECHO_IDL 2
#elif ECHO_ID_LENGTH == 6
#define ECHO_IDL 3
#elif ECHO_ID_LENGTH == 8 /* ID length = 8 used for */
#define ECHO_IDL 3 /* compatibility with */
#else /* Romeo/Tango */
#error "ECHO_ID_LENGTH must be 2, 4, 5, 6 or 8 bits long"
#endif
#ifndef ECHO_HEADER_LENGTH
#error "You must #define symbol ECHO_HEADER_LENGTH in Echo.H header file"
#endif
#ifndef ECHO_HEADER_VALUE
#error "You must #define symbol ECHO_HEADER_VALUE in Echo.H header file"
#endif
#if ECHO_HEADER_LENGTH == 1
#define ECHO_HDL 0
#elif ECHO_HEADER_LENGTH == 2
#define ECHO_HDL 1
#elif ECHO_HEADER_LENGTH == 4
#define ECHO_HDL 2
#elif ECHO_HEADER_LENGTH == 6
#define ECHO_HDL 3
#else
#error "ECHO_HEADER_LENGTH must be 1, 2, 4 or 6 bits long"
#endif
#ifndef ECHO_SOE_VALUE
#error "You must #define symbol ECHO_SOE_VALUE in Echo.H header file"
#endif
#if ECHO_SOE_VALUE != 0 && ECHO_SOE_VALUE != 1
#error "ECHO_SOE_VALUE must be 1 or 0 in Echo.h header file"
#endif
#ifndef ECHO_RXON_VALUE
#error "You must #define symbol ECHO_RXON_VALUE in Echo.H header file"
#endif
#ifndef ECHO_RXOFF_VALUE
#error "You must #define symbol ECHO_RXOFF_VALUE in Echo.H header file"
#endif
#if ECHO_RXON_VALUE < 1 || ECHO_RXON_VALUE > 15
#error "ECHO_RXON_VALUE must be between 1 and 15 inclusive in Echo.h \
header file"
#endif
#if ECHO_RXOFF_VALUE < 0 || ECHO_RXOFF_VALUE > 7
#error "ECHO_RXOFF_VALUE must be between 0 and 7 inclusive in Echo.h \
header file"
#endif
#ifndef ECHO_TIMER_ADDRESS
#error "You must #define symbol ECHO_TIMER_ADDRESS in Echo.H header file"
#endif
#ifndef ECHO_TIMER_CHANNEL
#error "You must #define symbol ECHO_TIMER_CHANNEL in Echo.H header file"
#endif
#if ECHO_TIMER_CHANNEL == 7
#error "ECHO_TIMER_CHANNEL must be between 0 and 6 inclusive in Echo.h \
header file (channel 7 reserved for main counter reset)"
#endif
/* #ifndef ECHO_TIMER_CLOCK_SOURCE
#error "You must #define symbol ECHO_TIMER_CLOCK_SOURCE in Echo.h header \
file"
#endif */
#ifndef ECHO_USE_DATACLK
#error "You must #define symbol ECHO_USE_DATACLK in Echo.h header file"
#endif
#if ECHO_USE_DATACLK != 0 && ECHO_USE_DATACLK != 1
#error "ECHO_USE_DATACLK must be 1 or 0 in Echo.h header file"
#endif
#ifndef ECHO_TIMER_CLOCK_SPEED
#error "You must #define symbol ECHO_TIMER_CLOCK_SPEED in Echo.h header \
file"
#endif
#ifndef ECHO_TIMER_PRESCALE
#error "You must #define symbol ECHO_TIMER_PRESCALE in Echo.h header file"
#endif
#ifndef ECHO_CRYSTAL_FREQUENCY
#error "You must #define symbol ECHO_CRYSTAL_FREQUENCY in Echo.h header \
file"
#endif
#ifndef ECHO_USE_MCU_ATD
#error "You must #define symbol ECHO_USE_MCU_ATD in Echo.h header file"
#endif
#if ECHO_USE_MCU_ATD == 1
#ifndef ECHO_ATD_ADDRESS
#error "You must #define symbol ECHO_ATD_ADDRESS when using the MCU \
ATD in Echo.h header file"
#endif
#ifndef ECHO_ATD_CHANNEL
#error "You must #define symbol ECHO_ATD_CHANNEL when using the MCU \
ATD in Echo.h header file"
#endif
#ifndef ECHO_ATD
#error "You must #define symbol ECHO_ATD when using the MCU ATD in \
Echo.h header file"
#endif
#if ECHO_ATD == 0
#if ECHO_ATD_CHANNEL < 0 || ECHO_ATD_CHANNEL > 7
#error "ECHO_ATD_CHANNEL must be between 0 and 7 inclusive in \
Echo.h header file"
#endif
#elif ECHO_ATD == 1
#if ECHO_ATD_CHANNEL < 0 || ECHO_ATD_CHANNEL > 15
#error "ECHO_ATD_CHANNEL must be between 0 and 15 inclusive in \
Echo.h header file"
#endif
#endif
#if ECHO_ATD == 0
#if ECHO_ATD_CHANNEL > 7
#error "ECHO_ATD_CHANNEL must be between 0 and 7 inclusive in \
Echo.h header file"
#endif
#elif ECHO_ATD == 1
#if ECHO_ATD_CHANNEL > 15
#error "ECHO_ATD_INPUT must be between 0 and 15 inclusive in \
Echo.h header file"
#endif
#endif
#if ((ECHO_MCU_BUS_SPEED / ECHO_ADC_PRESCALE) < 500000 || \
(ECHO_MCU_BUS_SPEED / ECHO_ADC_PRESCALE) > 8000000)
#error "Adjust ECHO_ADC_PRESCALE! \
ECHO_MCU_BUS_SPEED/ECHO_ADC_PRESCALE must be in range \
of 500000 to 8000000"
#endif
#endif
#ifndef ECHO_SWITCH_LEVEL
#error "You must #define symbol ECHO_SWITCH_LEVEL in Echo.h header file"
#endif
#if ECHO_SWITCH_LEVEL != 0 && ECHO_SWITCH_LEVEL != 1
#error "ECHO_SWITCH_LEVEL must be 1 or 0 in Echo.h header file"
#endif
#ifndef ECHO_LVD_ENABLE
#error "You must #define symbol ECHO_LVD_ENABLE in Echo.h header file"
#endif
#if ECHO_LVD_ENABLE != 0 && ECHO_LVD_ENABLE != 1
#error "ECHO_LVD_ENABLE must be 1 or 0 in Echo.h header file"
#endif
/******************************************************************************
* This section defines various values used in the driver
* DO NOT EDIT THIS SECTION!!
******************************************************************************/
/******************************************************************************
* ATD configuration
******************************************************************************/
/* Register address offsets for MC9S12XDP512 ATD0/ATD1 */
#define ECHO_ATDCTL2 *(volatile unsigned char *)(ECHO_ATD_ADDRESS+2)
/* ATD Control 2 */
#define ECHO_ATDCTL4 *(volatile unsigned char *)(ECHO_ATD_ADDRESS+4)
/* ATD Control 4 */
#define ECHO_ATDCTL5 *(volatile unsigned char *)(ECHO_ATD_ADDRESS+5)
/* ATD Control 5 */
#define ECHO_ATDSTAT0 *(volatile unsigned char *)(ECHO_ATD_ADDRESS+6)
/* ATD Status 0 */
#if ECHO_ATD_CHANNEL > 7
#define ECHO_ATDSTAT *(volatile unsigned char *)(ECHO_ATD_ADDRESS+10)
/* ATD Status 2 */
/* ATD1 only */
#else ECHO_ATD_CHANNEL
#define ECHO_ATDSTAT *(volatile unsigned char *)(ECHO_ATD_ADDRESS+11)
/* ATD Status 1 */
#endif /* ATD Input Enable (1) */
#define ECHO_ATDDRH *(volatile unsigned char *)\
(ECHO_ATD_ADDRESS+16) /* ATD Result 1 (High) */
#define ECHO_ATDDRL *(volatile unsigned char *)\
(ECHO_ATD_ADDRESS+17) /* ATD Result 1 (Low) */
/* ATD bit masks */
//#define ECHO_ATDCTL2_ADPU 0x80 /* ATD Power Up */
#define ECHO_ATDSTAT_SCF 0x80 /* complete flag */
#define ECHO_ATD_PRESCALER (ECHO_ATD_PRESCALE/2)-1
/******************************************************************************
* SPI configuration
******************************************************************************/
/* Register address offsets for MC9S12XEP100 SPI */
#define ECHO_SPIxC1 *(volatile unsigned char *)(ECHO_SPI_ADDRESS+0)
/* SPI Ctrl reg #1 */
#define ECHO_SPIxC2 *(volatile unsigned char *)(ECHO_SPI_ADDRESS+1)
/* SPI Ctrl reg #2 */
#define ECHO_SPIxBR *(volatile unsigned char *)(ECHO_SPI_ADDRESS+2)
/* SPI Baud rate reg */
#define ECHO_SPIxSR *(volatile unsigned char *)(ECHO_SPI_ADDRESS+3)
/* SPI Status reg */
#define ECHO_SPIxDR *(volatile unsigned char *)(ECHO_SPI_ADDRESS+5)
/* SPI Data reg */
/* SPI bit masks */
#define ECHO_SPIxC1_SPIE 0x80 /* SPI Rx Interrupt enable bit mask */
#define ECHO_SPIxC1_SPE 0x40 /* SPI system enable bit mask */
#define ECHO_SPIxC1_MSTR 0x10 /* SPI master/slave mode bit mask */
#define ECHO_SPIxSR_SPIF 0x80 /* SPI read buffer full bit mask */
#define ECHO_SPIxSR_SPTEF 0x20 /* SPI Tx buffer empty bit mask */
/* SPI baud rate divider */
/* Chooses appropriate baud rate divisor to provide max comms speed to Echo */
#define ECHO_MAX_SPI_SPEED 615000 /* Tsclk = 1us (minimum) 615000 */
#define ECHO_SPI_BAUD_RATE_PRESCALER 2 /* 0 => divide by 1 */
/* Can set this up if necessary */
#if (ECHO_SPI_CLOCK_SPEED/((ECHO_SPI_BAUD_RATE_PRESCALER+1)\
*ECHO_MAX_SPI_SPEED)) <= 2
#define ECHO_SPI_BAUD_RATE_DIVISOR 0
#elif (ECHO_SPI_CLOCK_SPEED/((ECHO_SPI_BAUD_RATE_PRESCALER+1)\
*ECHO_MAX_SPI_SPEED)) <= 4
#define ECHO_SPI_BAUD_RATE_DIVISOR 1
#elif (ECHO_SPI_CLOCK_SPEED/((ECHO_SPI_BAUD_RATE_PRESCALER+1)\
*ECHO_MAX_SPI_SPEED)) <= 8
#define ECHO_SPI_BAUD_RATE_DIVISOR 2
#elif (ECHO_SPI_CLOCK_SPEED/((ECHO_SPI_BAUD_RATE_PRESCALER+1)\
*ECHO_MAX_SPI_SPEED)) <= 16
#define ECHO_SPI_BAUD_RATE_DIVISOR 3
#elif (ECHO_SPI_CLOCK_SPEED/((ECHO_SPI_BAUD_RATE_PRESCALER+1)\
*ECHO_MAX_SPI_SPEED)) <= 32
#define ECHO_SPI_BAUD_RATE_DIVISOR 4
#elif (ECHO_SPI_CLOCK_SPEED/((ECHO_SPI_BAUD_RATE_PRESCALER+1)\
*ECHO_MAX_SPI_SPEED)) <= 64
#define ECHO_SPI_BAUD_RATE_DIVISOR 5
#elif (ECHO_SPI_CLOCK_SPEED/((ECHO_SPI_BAUD_RATE_PRESCALER+1)\
*ECHO_MAX_SPI_SPEED)) <= 128
#define ECHO_SPI_BAUD_RATE_DIVISOR 6
#elif (ECHO_SPI_CLOCK_SPEED/((ECHO_SPI_BAUD_RATE_PRESCALER+1)\
*ECHO_MAX_SPI_SPEED)) <= 256
#define ECHO_SPI_BAUD_RATE_DIVISOR 7
#else
#error "MCU SPI Baud Rate too high: increase ECHO_SPI_BAUD_RATE_PRESCALER \
in header file Echo.h"
#endif
/* Enable/disable Data Manager !!DATA MANAGER ALWAYS USED IN THIS VERSION!! */
#define ECHO_DME_VALUE 1 /* 0 = Data manager disabled */
/* 1 = Data manager enabled */
/******************************************************************************
* Timer configuration
******************************************************************************/
/* Register address offsets for MC9S12XEP100 timer */
#define ECHO_TIOS *(volatile unsigned char *)(ECHO_TIMER_ADDRESS+0)
/* Timer IC/OC select */
#define ECHO_TSCR1 *(volatile unsigned char *)(ECHO_TIMER_ADDRESS+6)
/* Tmr system control 1 */
#if ECHO_TIMER_CHANNEL > 3
#define ECHO_TCTL *(volatile unsigned char *)(ECHO_TIMER_ADDRESS+8)
/* Timer control 1 */
#elif ECHO_TIMER_CHANNEL < 4
#define ECHO_TCTL *(volatile unsigned char *)(ECHO_TIMER_ADDRESS+9)
/* Timer control 2 */
#endif
#define ECHO_TIE *(volatile unsigned char *)(ECHO_TIMER_ADDRESS+12)
/* Timer int enable */
#define ECHO_TSCR2 *(volatile unsigned char *)(ECHO_TIMER_ADDRESS+13)
/* Tmr system control 2 */
#define ECHO_TFLG1 *(volatile unsigned char *)(ECHO_TIMER_ADDRESS+14)
/* Timer int flags 1 */
/* Registers for each timer channel */
#define ECHO_TCxH *(volatile unsigned char *)(ECHO_TIMER_ADDRESS+16\
+(2*ECHO_TIMER_CHANNEL)+0)
/* Tmr IC/OC Register H */
#define ECHO_TCxL *(volatile unsigned char *)(ECHO_TIMER_ADDRESS+16\
+(2*ECHO_TIMER_CHANNEL)+1)
/* Tmr IC/OC Register L */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -