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

📄 can64def.inc

📁 AVR Assembler 2 compiler
💻 INC
📖 第 1 页 / 共 4 页
字号:
; CANGCON - CAN General Control Register
.equ	SWRES	= 0	; Software Reset Request
.equ	ENASTB	= 1	; Enable / Standby
.equ	TEST	= 2	; Test Mode
.equ	LISTEN	= 3	; Listening Mode
.equ	SYNTTC	= 4	; Synchronization of TTC
.equ	TTC	= 5	; Time Trigger Communication
.equ	OVRQ	= 6	; Overload Frame Request
.equ	ABRQ	= 7	; Abort Request

; CANGSTA - CAN General Status Register
.equ	ERRP	= 0	; Error Passive Mode
.equ	BOFF	= 1	; Bus Off Mode
.equ	ENFG	= 2	; Enable Flag
.equ	RXBSY	= 3	; Receiver Busy
.equ	TXBSY	= 4	; Transmitter Busy
.equ	OVRG	= 6	; Overload Frame Flag

; CANGIT - CAN General Interrupt Register
.equ	AERG	= 0	; Ackknowledgement Error General
.equ	FERG	= 1	; Form Error General
.equ	CERG	= 2	; CRC Error General
.equ	SERG	= 3	; Stuff Error General
.equ	BXOK	= 4	; Burst Receive Interrupt
.equ	OVRTIM	= 5	; Overrun CAN Timer
.equ	BOFFIT	= 6	; Bus Off Interrupt Flag
.equ	CANIT	= 7	; General Interrupt Flag

; CANGIE - CAN General Interrupt Enable Register
.equ	ENOVRT	= 0	; Enable CAN Timer Overrun Interrupt
.equ	ENERG	= 1	; Enable General Error Interrupt
.equ	ENBX	= 2	; Enable Burst Receive Interrupt
.equ	ENERR	= 3	; Enable MOb Error Interrupt
.equ	ENTX	= 4	; Enable Transmitt Interrupt
.equ	ENRX	= 5	; Enable Receive Interrupt
.equ	ENBOFF	= 6	; Enable Bus Off INterrupt
.equ	ENIT	= 7	; Enable all Interrupts

; CANEN2 - Enable MOb Register
.equ	ENMOB0	= 0	; 
.equ	ENMOB1	= 1	; 
.equ	ENMOB2	= 2	; 
.equ	ENMOB3	= 3	; 
.equ	ENMOB4	= 4	; 
.equ	ENMOB5	= 5	; 
.equ	ENMOB6	= 6	; 
.equ	ENMOB7	= 7	; 

; CANEN1 - Enable MOb Register
.equ	ENMOB8	= 0	; 
.equ	ENMOB9	= 1	; 
.equ	ENMOB10	= 2	; 
.equ	ENMOB11	= 3	; 
.equ	ENMOB12	= 4	; 
.equ	ENMOB13	= 5	; 
.equ	ENMOB14	= 6	; 

; CANIE2 - Enable Interrupt MOb Register
.equ	IEMOB0	= 0	; 
.equ	IEMOB1	= 1	; 
.equ	IEMOB2	= 2	; 
.equ	IEMOB3	= 3	; 
.equ	IEMOB4	= 4	; 
.equ	IEMOB5	= 5	; 
.equ	IEMOB6	= 6	; 
.equ	IEMOB7	= 7	; 

; CANIE1 - Enable Interrupt MOb Register
.equ	IEMOB8	= 0	; 
.equ	IEMOB9	= 1	; 
.equ	IEMOB10	= 2	; 
.equ	IEMOB11	= 3	; 
.equ	IEMOB12	= 4	; 
.equ	IEMOB13	= 5	; 
.equ	IEMOB14	= 6	; 

; CANSIT2 - CAN Status Interrupt MOb Register
.equ	SIT0	= 0	; 
.equ	SIT1	= 1	; 
.equ	SIT2	= 2	; 
.equ	SIT3	= 3	; 
.equ	SIT4	= 4	; 
.equ	SIT5	= 5	; 
.equ	SIT6	= 6	; 
.equ	SIT7	= 7	; 

; CANSIT1 - CAN Status Interrupt MOb Register
.equ	SIT8	= 0	; 
.equ	SIT9	= 1	; 
.equ	SIT10	= 2	; 
.equ	SIT11	= 3	; 
.equ	SIT12	= 4	; 
.equ	SIT13	= 5	; 
.equ	SIT14	= 6	; 

; CANBT1 - Bit Timing Register 1
.equ	BRP0	= 1	; Baud Rate Prescaler bit 0
.equ	BRP1	= 2	; Baud Rate Prescaler bit 1
.equ	BRP2	= 3	; Baud Rate Prescaler bit 2
.equ	BRP3	= 4	; Baud Rate Prescaler bit 3
.equ	BRP4	= 5	; Baud Rate Prescaler bit 4
.equ	BRP5	= 6	; Baud Rate Prescaler bit 5

; CANBT2 - Bit Timing Register 2
.equ	PRS0	= 1	; Propagation Time Segment
.equ	PRS1	= 2	; Propagation Time Segment
.equ	PRS2	= 3	; Propagation Time Segment
.equ	SJW0	= 5	; Re-Sync Jump Width
.equ	SJW1	= 6	; Re-Sync Jump Width

; CANBT3 - Bit Timing Register 3
.equ	SMP	= 0	; Sample Type
.equ	PHS10	= 1	; Phase Segment 1
.equ	PHS11	= 2	; Phase Segment 1
.equ	PHS12	= 3	; Phase Segment 1
.equ	PHS20	= 4	; Phase Segment 2
.equ	PHS21	= 5	; Phase Segment 2
.equ	PHS22	= 6	; Phase Segment 2

; CANTCON - Timer Control Register

; CANTIML - Timer Register Low

; CANTIMH - Timer Register High

; CANTTCL - TTC Timer Register Low

; CANTTCH - TTC Timer Register High

; CANTEC - Transmit Error Counter Register

; CANREC - Receive Error Counter Register

; CANHPMOB - Highest Priority MOb Register
.equ	CGP0	= 0	; 
.equ	CGP	= CGP0	; For compatibility
.equ	CGP1	= 1	; 
.equ	CGP2	= 2	; 
.equ	CGP3	= 3	; 
.equ	HPMOB0	= 4	; 
.equ	HPMOB1	= 5	; 
.equ	HPMOB2	= 6	; 
.equ	HPMOB3	= 7	; 

; CANPAGE - Page MOb Register
.equ	INDX0	= 0	; Data Buffer Index Bit 0
.equ	INDX1	= 1	; Data Buffer Index Bit 1
.equ	INDX2	= 2	; Data Buffer Index Bit 2
.equ	AINC	= 3	; MOb Data Buffer Auto Increment
.equ	MOBNB0	= 4	; MOb Number Bit 0
.equ	MOBNB1	= 5	; MOb Number Bit 1
.equ	MOBNB2	= 6	; MOb Number Bit 2
.equ	MOBNB3	= 7	; MOb Number Bit 3

; CANSTMOB - MOb Status Register
.equ	AERR	= 0	; Ackknowledgement Error
.equ	FERR	= 1	; Form Error
.equ	CERR	= 2	; CRC Error
.equ	SERR	= 3	; Stuff Error
.equ	BERR	= 4	; Bit Error
.equ	RXOK	= 5	; Receive OK
.equ	TXOK	= 6	; Transmit OK
.equ	DLCW	= 7	; Data Length Code Warning

; CANCDMOB - MOb Control and DLC Register
.equ	DLC0	= 0	; Data Length Code Bit 0
.equ	DLC1	= 1	; Data Length Code Bit 1
.equ	DLC2	= 2	; Data Length Code Bit 2
.equ	DLC3	= 3	; Data Length Code Bit 3
.equ	IDE	= 4	; Identifier Extension
.equ	RPLV	= 5	; Reply Valid
.equ	CONMOB0	= 6	; MOb Config Bit 0
.equ	CONMOB1	= 7	; MOb Config Bit 1

; CANIDT4 - Identifier Tag Register 4
.equ	RB0TAG	= 0	; 
.equ	RB1TAG	= 1	; 
.equ	RTRTAG	= 2	; 
.equ	IDT0	= 3	; 
.equ	IDT1	= 4	; 
.equ	IDT2	= 5	; 
.equ	IDT3	= 6	; 
.equ	IDT4	= 7	; 

; CANIDT3 - Identifier Tag Register 3
.equ	IDT5	= 0	; 
.equ	IDT6	= 1	; 
.equ	IDT7	= 2	; 
.equ	IDT8	= 3	; 
.equ	IDT9	= 4	; 
.equ	IDT10	= 5	; 
.equ	IDT11	= 6	; 
.equ	IDT12	= 7	; 

; CANIDT2 - Identifier Tag Register 2
.equ	IDT13	= 0	; 
.equ	IDT14	= 1	; 
.equ	IDT15	= 2	; 
.equ	IDT16	= 3	; 
.equ	IDT17	= 4	; 
.equ	IDT18	= 5	; 
.equ	IDT19	= 6	; 
.equ	IDT20	= 7	; 

; CANIDT1 - Identifier Tag Register 1
.equ	IDT21	= 0	; 
.equ	IDT22	= 1	; 
.equ	IDT23	= 2	; 
.equ	IDT24	= 3	; 
.equ	IDT25	= 4	; 
.equ	IDT26	= 5	; 
.equ	IDT27	= 6	; 
.equ	IDT28	= 7	; 

; CANIDM4 - Identifier Mask Register 4
.equ	IDEMSK	= 0	; 
.equ	RTRMSK	= 2	; 
.equ	IDMSK0	= 3	; 
.equ	IDMSK1	= 4	; 
.equ	IDMSK2	= 5	; 
.equ	IDMSK3	= 6	; 
.equ	IDMSK4	= 7	; 

; CANIDM3 - Identifier Mask Register 3
.equ	IDMSK5	= 0	; 
.equ	IDMSK6	= 1	; 
.equ	IDMSK7	= 2	; 
.equ	IDMSK8	= 3	; 
.equ	IDMSK9	= 4	; 
.equ	IDMSK10	= 5	; 
.equ	IDMSK11	= 6	; 
.equ	IDMSK12	= 7	; 

; CANIDM2 - Identifier Mask Register 2
.equ	IDMSK13	= 0	; 
.equ	IDMSK14	= 1	; 
.equ	IDMSK15	= 2	; 
.equ	IDMSK16	= 3	; 
.equ	IDMSK17	= 4	; 
.equ	IDMSK18	= 5	; 
.equ	IDMSK19	= 6	; 
.equ	IDMSK20	= 7	; 

; CANIDM1 - Identifier Mask Register 1
.equ	IDMSK21	= 0	; 
.equ	IDMSK22	= 1	; 
.equ	IDMSK23	= 2	; 
.equ	IDMSK24	= 3	; 
.equ	IDMSK25	= 4	; 
.equ	IDMSK26	= 5	; 
.equ	IDMSK27	= 6	; 
.equ	IDMSK28	= 7	; 

; CANSTML - Time Stamp Register Low

; CANSTMH - Time Stamp Register High

; CANMSG - Message Data Register



; ***** LOCKSBITS ********************************************************
.equ	LB1	= 0	; Lock bit
.equ	LB2	= 1	; Lock bit
.equ	BLB01	= 2	; Boot Lock bit
.equ	BLB02	= 3	; Boot Lock bit
.equ	BLB11	= 4	; Boot lock bit
.equ	BLB12	= 5	; Boot lock bit


; ***** FUSES ************************************************************
; LOW fuse bits
.equ	CKSEL0	= 0	; Select Clock Source
.equ	CKSEL1	= 1	; Select Clock Source
.equ	CKSEL2	= 2	; Select Clock Source
.equ	CKSEL3	= 3	; Select Clock Source
.equ	SUT0	= 4	; Select start-up time
.equ	SUT1	= 5	; Select start-up time
.equ	CKOUT	= 6	; Oscillator output option
.equ	CKDIV8	= 7	; Divide clock by 8

; HIGH fuse bits
.equ	BOOTRST	= 0	; Select Reset Vector
.equ	BOOTSZ0	= 1	; Select Boot Size
.equ	BOOTSZ1	= 2	; Select Boot Size
.equ	EESAVE	= 3	; EEPROM memory is preserved through chip erase
.equ	WDTON	= 4	; Watchdog timer always on
.equ	SPIEN	= 5	; Enable Serial programming and Data Downloading
.equ	JTAGEN	= 6	; Enable JTAG
.equ	OCDEN	= 7	; Enable OCD

; EXTENDED fuse bits
.equ	TA0SEL	= 0	; (Reserved to factory tests)
.equ	BODLEVEL0	= 1	; Brown-out Detector trigger level
.equ	BODLEVEL1	= 2	; Brown-out Detector trigger level
.equ	BODLEVEL2	= 3	; Brown out detector trigger level



; ***** CPU REGISTER DEFINITIONS *****************************************
.def	XH	= r27
.def	XL	= r26
.def	YH	= r29
.def	YL	= r28
.def	ZH	= r31
.def	ZL	= r30



; ***** DATA MEMORY DECLARATIONS *****************************************
.equ	FLASHEND	= 0x7fff	; Note: Word address
.equ	IOEND	= 0x00ff
.equ	SRAM_START	= 0x0100
.equ	SRAM_SIZE	= 4096
.equ	RAMEND	= 0x10ff
.equ	XRAMEND	= 0xffff
.equ	E2END	= 0x07ff
.equ	EEPROMEND	= 0x07ff
.equ	EEADRBITS	= 11
#pragma AVRPART MEMORY PROG_FLASH 65536
#pragma AVRPART MEMORY EEPROM 2048
#pragma AVRPART MEMORY INT_SRAM SIZE 4096
#pragma AVRPART MEMORY INT_SRAM START_ADDR 0x100



; ***** BOOTLOADER DECLARATIONS ******************************************
.equ	NRWW_START_ADDR	= 0x7000
.equ	NRWW_STOP_ADDR	= 0x7fff
.equ	RWW_START_ADDR	= 0x0
.equ	RWW_STOP_ADDR	= 0x6fff
.equ	PAGESIZE	= 128
.equ	FIRSTBOOTSTART	= 0x7e00
.equ	SECONDBOOTSTART	= 0x7c00
.equ	THIRDBOOTSTART	= 0x7800
.equ	FOURTHBOOTSTART	= 0x7000
.equ	SMALLBOOTSTART	= FIRSTBOOTSTART
.equ	LARGEBOOTSTART	= FOURTHBOOTSTART



; ***** INTERRUPT VECTORS ************************************************
.equ	INT0addr	= 0x0002	; External Interrupt Request 0
.equ	INT1addr	= 0x0004	; External Interrupt Request 1
.equ	INT2addr	= 0x0006	; External Interrupt Request 2
.equ	INT3addr	= 0x0008	; External Interrupt Request 3
.equ	INT4addr	= 0x000a	; External Interrupt Request 4
.equ	INT5addr	= 0x000c	; External Interrupt Request 5
.equ	INT6addr	= 0x000e	; External Interrupt Request 6
.equ	INT7addr	= 0x0010	; External Interrupt Request 7
.equ	OC2addr	= 0x0012	; Timer/Counter2 Compare Match
.equ	OVF2addr	= 0x0014	; Timer/Counter2 Overflow
.equ	ICP1addr	= 0x0016	; Timer/Counter1 Capture Event
.equ	OC1Aaddr	= 0x0018	; Timer/Counter1 Compare Match A
.equ	OC1Baddr	= 0x001a	; Timer/Counter Compare Match B
.equ	OC1Caddr	= 0x001c	; Timer/Counter1 Compare Match C
.equ	OVF1addr	= 0x001e	; Timer/Counter1 Overflow
.equ	OC0addr	= 0x0020	; Timer/Counter0 Compare Match
.equ	OVF0addr	= 0x0022	; Timer/Counter0 Overflow
.equ	CANITaddr	= 0x0024	; CAN Transfer Complete or Error
.equ	OVRITaddr	= 0x0026	; CAN Timer Overrun
.equ	SPIaddr	= 0x0028	; SPI Serial Transfer Complete
.equ	URXC0addr	= 0x002a	; USART0, Rx Complete
.equ	UDRE0addr	= 0x002c	; USART0 Data Register Empty
.equ	UTXC0addr	= 0x002e	; USART0, Tx Complete
.equ	ACIaddr	= 0x0030	; Analog Comparator
.equ	ADCCaddr	= 0x0032	; ADC Conversion Complete
.equ	ERDYaddr	= 0x0034	; EEPROM Ready
.equ	ICP3addr	= 0x0036	; Timer/Counter3 Capture Event
.equ	OC3Aaddr	= 0x0038	; Timer/Counter3 Compare Match A
.equ	OC3Baddr	= 0x003a	; Timer/Counter3 Compare Match B
.equ	OC3Caddr	= 0x003c	; Timer/Counter3 Compare Match C
.equ	OVF3addr	= 0x003e	; Timer/Counter3 Overflow
.equ	URXC1addr	= 0x0040	; USART1, Rx Complete
.equ	UDRE1addr	= 0x0042	; USART1, Data Register Empty
.equ	UTXC1addr	= 0x0044	; USART1, Tx Complete
.equ	TWIaddr	= 0x0046	; 2-wire Serial Interface
.equ	SPMRaddr	= 0x0048	; Store Program Memory Read

.equ	INT_VECTORS_SIZE	= 74	; size in words

#endif  /* _CAN64DEF_INC_ */

; ***** END OF FILE ******************************************************

⌨️ 快捷键说明

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