⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 des_mc33696.h

📁 BCM 控制demo源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
	#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  */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -