Files
aqhomecontrol/avr/include/m64HVEdef.inc
Martin Preuss 112e15e41b Initial import.
2023-01-16 23:12:09 +01:00

951 lines
32 KiB
PHP
Executable File

;***** THIS IS A MACHINE GENERATED FILE - DO NOT EDIT ********************
;***** Created: 2011-02-09 12:03 ******* Source: ATmega64HVE.xml *********
;*************************************************************************
;* A P P L I C A T I O N N O T E F O R T H E A V R F A M I L Y
;*
;* Number : AVR000
;* File Name : "m64HVEdef.inc"
;* Title : Register/Bit Definitions for the ATmega64HVE
;* Date : 2011-02-09
;* Version : 2.35
;* Support E-mail : avr@atmel.com
;* Target MCU : ATmega64HVE
;*
;* DESCRIPTION
;* When including this file in the assembly program file, all I/O register
;* names and I/O register bit names appearing in the data book can be used.
;* In addition, the six registers forming the three data pointers X, Y and
;* Z have been assigned names XL - ZH. Highest RAM address for Internal
;* SRAM is also defined
;*
;* The Register names are represented by their hexadecimal address.
;*
;* The Register Bit names are represented by their bit number (0-7).
;*
;* Please observe the difference in using the bit names with instructions
;* such as "sbr"/"cbr" (set/clear bit in register) and "sbrs"/"sbrc"
;* (skip if bit in register set/cleared). The following example illustrates
;* this:
;*
;* in r16,PORTB ;read PORTB latch
;* sbr r16,(1<<PB6)+(1<<PB5) ;set PB6 and PB5 (use masks, not bit#)
;* out PORTB,r16 ;output to PORTB
;*
;* in r16,TIFR ;read the Timer Interrupt Flag Register
;* sbrc r16,TOV0 ;test the overflow flag (use bit#)
;* rjmp TOV0_is_set ;jump if set
;* ... ;otherwise do something else
;*************************************************************************
#ifndef _M64HVEDEF_INC_
#define _M64HVEDEF_INC_
#pragma partinc 0
; ***** SPECIFY DEVICE ***************************************************
.device ATmega64HVE
#pragma AVRPART ADMIN PART_NAME ATmega64HVE
.equ SIGNATURE_000 = 0x1e
.equ SIGNATURE_001 = 0x96
.equ SIGNATURE_002 = 0x10
#pragma AVRPART CORE CORE_VERSION V2E
#pragma AVRPART CORE EXTENSIONS MEXT 1
; ***** I/O REGISTER DEFINITIONS *****************************************
; NOTE:
; Definitions marked "MEMORY MAPPED"are extended I/O ports
; and cannot be used with IN/OUT instructions
.equ VADAC3 = 0xf6 ; MEMORY MAPPED
.equ VADAC2 = 0xf5 ; MEMORY MAPPED
.equ VADAC1 = 0xf4 ; MEMORY MAPPED
.equ VADAC0 = 0xf3 ; MEMORY MAPPED
.equ VADICL = 0xf1 ; MEMORY MAPPED
.equ VADICH = 0xf2 ; MEMORY MAPPED
.equ CADAC3 = 0xf0 ; MEMORY MAPPED
.equ CADAC2 = 0xef ; MEMORY MAPPED
.equ CADAC1 = 0xee ; MEMORY MAPPED
.equ CADAC0 = 0xed ; MEMORY MAPPED
.equ CADICL = 0xeb ; MEMORY MAPPED
.equ CADICH = 0xec ; MEMORY MAPPED
.equ CADRCLH = 0xea ; MEMORY MAPPED
.equ CADRCLL = 0xe9 ; MEMORY MAPPED
.equ ADIMR = 0xe8 ; MEMORY MAPPED
.equ ADIFR = 0xe7 ; MEMORY MAPPED
.equ ADCRE = 0xe6 ; MEMORY MAPPED
.equ ADCRD = 0xe5 ; MEMORY MAPPED
.equ ADCRC = 0xe4 ; MEMORY MAPPED
.equ ADCRB = 0xe3 ; MEMORY MAPPED
.equ ADCRA = 0xe2 ; MEMORY MAPPED
.equ ADSCSRB = 0xe1 ; MEMORY MAPPED
.equ ADSCSRA = 0xe0 ; MEMORY MAPPED
.equ PBOV = 0xdc ; MEMORY MAPPED
.equ PLLCSR = 0xd8 ; MEMORY MAPPED
.equ BGLR = 0xd4 ; MEMORY MAPPED
.equ BGCRA = 0xd3 ; MEMORY MAPPED
.equ BGCRB = 0xd2 ; MEMORY MAPPED
.equ BGCSRA = 0xd1 ; MEMORY MAPPED
.equ LINDAT = 0xca ; MEMORY MAPPED
.equ LINSEL = 0xc9 ; MEMORY MAPPED
.equ LINIDR = 0xc8 ; MEMORY MAPPED
.equ LINDLR = 0xc7 ; MEMORY MAPPED
.equ LINBRRH = 0xc6 ; MEMORY MAPPED
.equ LINBRRL = 0xc5 ; MEMORY MAPPED
.equ LINBTR = 0xc4 ; MEMORY MAPPED
.equ LINERR = 0xc3 ; MEMORY MAPPED
.equ LINENIR = 0xc2 ; MEMORY MAPPED
.equ LINSIR = 0xc1 ; MEMORY MAPPED
.equ LINCR = 0xc0 ; MEMORY MAPPED
.equ OCR1B = 0x89 ; MEMORY MAPPED
.equ OCR1A = 0x88 ; MEMORY MAPPED
.equ TCNT1L = 0x84 ; MEMORY MAPPED
.equ TCNT1H = 0x85 ; MEMORY MAPPED
.equ TCCR1C = 0x82 ; MEMORY MAPPED
.equ TCCR1B = 0x81 ; MEMORY MAPPED
.equ TCCR1A = 0x80 ; MEMORY MAPPED
.equ DIDR0 = 0x7e ; MEMORY MAPPED
.equ TIMSK1 = 0x6f ; MEMORY MAPPED
.equ TIMSK0 = 0x6e ; MEMORY MAPPED
.equ PCMSK1 = 0x6c ; MEMORY MAPPED
.equ PCMSK0 = 0x6b ; MEMORY MAPPED
.equ EICRA = 0x69 ; MEMORY MAPPED
.equ PCICR = 0x68 ; MEMORY MAPPED
.equ SOSCCALB = 0x67 ; MEMORY MAPPED
.equ SOSCCALA = 0x66 ; MEMORY MAPPED
.equ PRR0 = 0x64 ; MEMORY MAPPED
.equ WDTCLR = 0x63 ; MEMORY MAPPED
.equ WUTCSR = 0x62 ; MEMORY MAPPED
.equ CLKPR = 0x61 ; MEMORY MAPPED
.equ WDTCSR = 0x60 ; MEMORY MAPPED
.equ SREG = 0x3f
.equ SPL = 0x3d
.equ SPH = 0x3e
.equ SPMCSR = 0x37
.equ MCUCR = 0x35
.equ MCUSR = 0x34
.equ SMCR = 0x33
.equ OCDR = 0x31
.equ TCCR0C = 0x2f
.equ SPDR = 0x2e
.equ SPSR = 0x2d
.equ SPCR = 0x2c
.equ GPIOR2 = 0x2b
.equ GPIOR1 = 0x2a
.equ OCR0B = 0x29
.equ OCR0A = 0x28
.equ TCNT0L = 0x26
.equ TCNT0H = 0x27
.equ TCCR0B = 0x25
.equ TCCR0A = 0x24
.equ GTCCR = 0x23
.equ EEARL = 0x21
.equ EEARH = 0x22
.equ EEDR = 0x20
.equ EECR = 0x1f
.equ GPIOR0 = 0x1e
.equ EIMSK = 0x1d
.equ EIFR = 0x1c
.equ PCIFR = 0x1b
.equ TIFR1 = 0x16
.equ TIFR0 = 0x15
.equ PORTB = 0x05
.equ DDRB = 0x04
.equ PINB = 0x03
.equ PORTA = 0x02
.equ DDRA = 0x01
.equ PINA = 0x00
; ***** BIT DEFINITIONS **************************************************
; ***** SPI **************************
; SPDR - SPI Data Register
.equ SPDR0 = 0 ; SPI Data Register bit 0
.equ SPDR1 = 1 ; SPI Data Register bit 1
.equ SPDR2 = 2 ; SPI Data Register bit 2
.equ SPDR3 = 3 ; SPI Data Register bit 3
.equ SPDR4 = 4 ; SPI Data Register bit 4
.equ SPDR5 = 5 ; SPI Data Register bit 5
.equ SPDR6 = 6 ; SPI Data Register bit 6
.equ SPDR7 = 7 ; SPI Data Register bit 7
; SPSR - SPI Status Register
.equ SPI2X = 0 ; Double SPI Speed Bit
.equ WCOL = 6 ; Write Collision Flag
.equ SPIF = 7 ; SPI Interrupt Flag
; SPCR - SPI Control Register
.equ SPR0 = 0 ; SPI Clock Rate Select 0
.equ SPR1 = 1 ; SPI Clock Rate Select 1
.equ CPHA = 2 ; Clock Phase
.equ CPOL = 3 ; Clock polarity
.equ MSTR = 4 ; Master/Slave Select
.equ DORD = 5 ; Data Order
.equ SPE = 6 ; SPI Enable
.equ SPIE = 7 ; SPI Interrupt Enable
; ***** EEPROM ***********************
; EEDR - EEPROM Data Register
.equ EEDR0 = 0 ; EEPROM Data Register bit 0
.equ EEDR1 = 1 ; EEPROM Data Register bit 1
.equ EEDR2 = 2 ; EEPROM Data Register bit 2
.equ EEDR3 = 3 ; EEPROM Data Register bit 3
.equ EEDR4 = 4 ; EEPROM Data Register bit 4
.equ EEDR5 = 5 ; EEPROM Data Register bit 5
.equ EEDR6 = 6 ; EEPROM Data Register bit 6
.equ EEDR7 = 7 ; EEPROM Data Register bit 7
; EECR - EEPROM Control Register
.equ EERE = 0 ; EEPROM Read Enable
.equ EEPE = 1 ; EEPROM Write Enable
.equ EEWE = EEPE ; For compatibility
.equ EEMPE = 2 ; EEPROM Master Write Enable
.equ EEMWE = EEMPE ; For compatibility
.equ EERIE = 3 ; EEProm Ready Interrupt Enable
.equ EEPM0 = 4 ;
.equ EEPM1 = 5 ;
; ***** TIMER_COUNTER_1 **************
; TCCR1A - Timer/Counter 1 Control Register A
.equ WGM10 = 0 ; Waveform Generation Mode
.equ ICS1 = 3 ; Input Capture Select
.equ ICES1 = 4 ; Input Capture Edge Select
.equ ICNC1 = 5 ; Input Capture Noise Canceler
.equ ICEN1 = 6 ; Input Capture Mode Enable
.equ TCW1 = 7 ; Timer/Counter Width
; TCCR1B - Timer/Counter1 Control Register B
.equ CS10 = 0 ; Clock Select1 bit 0
.equ CS11 = 1 ; Clock Select1 bit 1
.equ CS12 = 2 ; Clock Select1 bit 2
; OCR1A - Output Compare Register 1A
.equ OCR1A0 = 0 ;
.equ OCR1A1 = 1 ;
.equ OCR1A2 = 2 ;
.equ OCR1A3 = 3 ;
.equ OCR1A4 = 4 ;
.equ OCR1A5 = 5 ;
.equ OCR1A6 = 6 ;
.equ OCR1A7 = 7 ;
; OCR1B - Output Compare Register B
.equ OCR1B0 = 0 ;
.equ OCR1B1 = 1 ;
.equ OCR1B2 = 2 ;
.equ OCR1B3 = 3 ;
.equ OCR1B4 = 4 ;
.equ OCR1B5 = 5 ;
.equ OCR1B6 = 6 ;
.equ OCR1B7 = 7 ;
; TIMSK1 - Timer/Counter Interrupt Mask Register
.equ TOIE1 = 0 ; Timer/Counter1 Overflow Interrupt Enable
.equ OCIE1A = 1 ; Timer/Counter1 Output Compare A Interrupt Enable
.equ OCIE1B = 2 ; Timer/Counter1 Output Compare B Interrupt Enable
.equ ICIE1 = 3 ; Timer/Counter n Input Capture Interrupt Enable
; TIFR1 - Timer/Counter Interrupt Flag register
.equ TOV1 = 0 ; Timer/Counter1 Overflow Flag
.equ OCF1A = 1 ; Timer/Counter1 Output Compare Flag A
.equ OCF1B = 2 ; Timer/Counter1 Output Compare Flag B
.equ ICF1 = 3 ; Timer/Counter 1 Input Capture Flag
; GTCCR - General Timer/Counter Control Register
.equ PSRSYNC = 0 ; Prescaler Reset
.equ TSM = 7 ; Timer/Counter Synchronization Mode
; ***** PORTB ************************
; PORTB - Port B Data Register
.equ PORTB0 = 0 ; Port B Data Register bit 0
.equ PB0 = 0 ; For compatibility
.equ PORTB1 = 1 ; Port B Data Register bit 1
.equ PB1 = 1 ; For compatibility
.equ PORTB2 = 2 ; Port B Data Register bit 2
.equ PB2 = 2 ; For compatibility
.equ PORTB3 = 3 ; Port B Data Register bit 3
.equ PB3 = 3 ; For compatibility
.equ PORTB4 = 4 ; Port B Data Register bit 4
.equ PB4 = 4 ; For compatibility
.equ PORTB5 = 5 ; Port B Data Register bit 5
.equ PB5 = 5 ; For compatibility
.equ PORTB6 = 6 ; Port B Data Register bit 6
.equ PB6 = 6 ; For compatibility
.equ PORTB7 = 7 ; Port B Data Register bit 7
.equ PB7 = 7 ; For compatibility
; DDRB - Port B Data Direction Register
.equ DDB0 = 0 ; Port B Data Direction Register bit 0
.equ DDB1 = 1 ; Port B Data Direction Register bit 1
.equ DDB2 = 2 ; Port B Data Direction Register bit 2
.equ DDB3 = 3 ; Port B Data Direction Register bit 3
.equ DDB4 = 4 ; Port B Data Direction Register bit 4
.equ DDB5 = 5 ; Port B Data Direction Register bit 5
.equ DDB6 = 6 ; Port B Data Direction Register bit 6
.equ DDB7 = 7 ; Port B Data Direction Register bit 7
; PINB - Port B Input Pins
.equ PINB0 = 0 ; Port B Input Pins bit 0
.equ PINB1 = 1 ; Port B Input Pins bit 1
.equ PINB2 = 2 ; Port B Input Pins bit 2
.equ PINB3 = 3 ; Port B Input Pins bit 3
.equ PINB4 = 4 ; Port B Input Pins bit 4
.equ PINB5 = 5 ; Port B Input Pins bit 5
.equ PINB6 = 6 ; Port B Input Pins bit 6
.equ PINB7 = 7 ; Port B Input Pins bit 7
; PBOV - Port B Override
.equ PBOE0 = 0 ; Port B Override Enable 0
.equ PBOE3 = 3 ; Port B Override Enable 3
.equ PBOVCE = 7 ; Port B Override Change Enable
; ***** TIMER_COUNTER_0 **************
; TCCR0A - Timer/Counter 0 Control Register A
.equ WGM00 = 0 ; Waveform Generation Mode
.equ ICS0 = 3 ; Input Capture Select
.equ ICES0 = 4 ; Input Capture Edge Select
.equ ICNC0 = 5 ; Input Capture Noise Canceler
.equ ICEN0 = 6 ; Input Capture Mode Enable
.equ TCW0 = 7 ; Timer/Counter Width
; TCCR0B - Timer/Counter0 Control Register B
.equ CS00 = 0 ; Clock Select0 bit 0
.equ CS01 = 1 ; Clock Select0 bit 1
.equ CS02 = 2 ; Clock Select0 bit 2
; OCR0A - Output Compare Register 0A
.equ OCR0A0 = 0 ;
.equ OCR0A1 = 1 ;
.equ OCR0A2 = 2 ;
.equ OCR0A3 = 3 ;
.equ OCR0A4 = 4 ;
.equ OCR0A5 = 5 ;
.equ OCR0A6 = 6 ;
.equ OCR0A7 = 7 ;
; OCR0B - Output Compare Register B
.equ OCR0B0 = 0 ;
.equ OCR0B1 = 1 ;
.equ OCR0B2 = 2 ;
.equ OCR0B3 = 3 ;
.equ OCR0B4 = 4 ;
.equ OCR0B5 = 5 ;
.equ OCR0B6 = 6 ;
.equ OCR0B7 = 7 ;
; TIMSK0 - Timer/Counter Interrupt Mask Register
.equ TOIE0 = 0 ; Timer/Counter0 Overflow Interrupt Enable
.equ OCIE0A = 1 ; Timer/Counter0 Output Compare A Interrupt Enable
.equ OCIE0B = 2 ; Timer/Counter0 Output Compare B Interrupt Enable
.equ ICIE0 = 3 ; Timer/Counter n Input Capture Interrupt Enable
; TIFR0 - Timer/Counter Interrupt Flag register
.equ TOV0 = 0 ; Timer/Counter0 Overflow Flag
.equ OCF0A = 1 ; Timer/Counter0 Output Compare Flag A
.equ OCF0B = 2 ; Timer/Counter0 Output Compare Flag B
.equ ICF0 = 3 ; Timer/Counter 0 Input Capture Flag
; GTCCR - General Timer/Counter Control Register
;.equ PSRSYNC = 0 ; Prescaler Reset
;.equ TSM = 7 ; Timer/Counter Synchronization Mode
; ***** BOOT_LOAD ********************
; SPMCSR - Store Program Memory Control and Status Register
.equ SPMEN = 0 ; Store Program Memory Enable
.equ PGERS = 1 ; Page Erase
.equ PGWRT = 2 ; Page Write
.equ LBSET = 3 ; Lock Bit Set
.equ RWWSRE = 4 ; Read-While-Write Section Read Enable
.equ SIGRD = 5 ; Signature Row Read
.equ RWWSB = 6 ; Read-While-Write Section Busy
.equ SPMIE = 7 ; SPM Interrupt Enable
; ***** AD_CONVERTER *****************
; ADSCSRA - ADC Synchronization Control and Status Register
.equ SCMD0 = 0 ; Synchronization Command
.equ SCMD1 = 1 ; Synchronization Command
.equ SBSY = 2 ; Synchronization Busy
; ADSCSRB - ADC Synchronization Control and Status Register
.equ CADICRB = 0 ; CADIC Data Read Out Busy
.equ CADACRB = 1 ; CADAC Data Read Out Busy
.equ CADICPS = 2 ; C-ADC Instantaneous Conversion Polarity Status
.equ VADICRB = 4 ; VADIC Data Read Out Busy
.equ VADACRB = 5 ; VADAC Data Read Out Busy
.equ VADICPS = 6 ; V-ADC Instantaneous Conversion Polarity Status
; ADCRA - ADC Control Register A
.equ CKSEL = 0 ; Sampling Clock Select
.equ ADCMS0 = 1 ; C-ADC Chopper Mode Select
.equ ADCMS1 = 2 ; C-ADC Chopper Mode Select
.equ ADPSEL = 3 ; ADC Polarity Select
; ADCRB - ADC Control Register B
.equ ADADES0 = 0 ; Accumulated Decimation Ratio Select
.equ ADADES1 = 1 ; Accumulated Decimation Ratio Select
.equ ADADES2 = 2 ; Accumulated Decimation Ratio Select
.equ ADIDES0 = 3 ; Instantaneous Decimation Ratio Select
.equ ADIDES1 = 4 ; Instantaneous Decimation Ratio Select
; ADCRC - ADC Control Register B
.equ CADRCT0 = 0 ; C-ADC Regular Current Count Threshold
.equ CADRCT1 = 1 ; C-ADC Regular Current Count Threshold
.equ CADRCT2 = 2 ; C-ADC Regular Current Count Threshold
.equ CADRCT3 = 3 ; C-ADC Regular Current Count Threshold
.equ CADRCM0 = 4 ; C-ADC Regular Current Comparator Mode
.equ CADRCM1 = 5 ; C-ADC Regular Current Comparator Mode
.equ CADEN = 7 ; C-ADC Enable
; ADCRD - ADC Control Register D
.equ CADDSEL = 0 ; C-ADC Diagnostics Channel Select
.equ CADPDM0 = 1 ; C-ADC Pin Diagnostics Mode
.equ CADPDM1 = 2 ; C-ADC Pin Diagnostics Mode
.equ CADG0 = 3 ; C-ADC Gain
.equ CADG1 = 4 ; C-ADC Gain
.equ CADG2 = 5 ; C-ADC Gain
; ADCRE - ADC Control Register E
.equ VADMUX0 = 0 ; V-ADC Channel Select
.equ VADMUX1 = 1 ; V-ADC Channel Select
.equ VADMUX2 = 2 ; V-ADC Channel Select
.equ VADPDM0 = 3 ; V-ADC Pin Diagnostics Mode
.equ VADPDM1 = 4 ; V-ADC Pin Diagnostics Mode
.equ VADREFS = 5 ; V-ADC Reference Select
.equ VADEN = 7 ; V-ADC Enable
; ADIFR - ADC Interrupt Flag Register
.equ CADICIF = 0 ; C-ADC Instantaneous Current Interrupt Flag
.equ CADACIF = 1 ; C-ADC Accumulated Current Interrupt Flag
.equ CADRCIF = 2 ; C-ADC Regulator Current Interrupt Flag
.equ VADICIF = 4 ; V-DAC Instantaneous Voltage Interrupt Flag
.equ VADACIF = 5 ; V-ADC Accumulated Voltage Interrupt Flag
; ADIMR - ADC Interrupt Mask Register
.equ CADICIE = 0 ; C-ADC Instantaneous Current Interrupt Enable
.equ CADACIE = 1 ; C-ADC Accumulated Current Interrupt Enable
.equ CADRCIE = 2 ; C-ADC Regulator Current Interrupt Enable
.equ VADICIE = 4 ; V-DAC Instantaneous Voltage Interrupt Enable
.equ VADACIE = 5 ; V-ADC Accumulated Voltage Interrupt Enable
; CADRCLH - CC-ADC Regulator Current Comparator Threshold Level
.equ CADRCL8 = 0 ;
.equ CADRCL9 = 1 ;
.equ CADRCL10 = 2 ;
.equ CADRCL11 = 3 ;
.equ CADRCL12 = 4 ;
.equ CADRCL13 = 5 ;
.equ CADRCL14 = 6 ;
.equ CADRCL15 = 7 ;
; CADRCLL - CC-ADC Regulator Current Comparator Threshold Level
.equ CADRCL0 = 0 ;
.equ CADRCL1 = 1 ;
.equ CADRCL2 = 2 ;
.equ CADRCL3 = 3 ;
.equ CADRCL4 = 4 ;
.equ CADRCL5 = 5 ;
.equ CADRCL6 = 6 ;
.equ CADRCL7 = 7 ;
; VADAC3 - V-ADC Accumulated Conversion Result
.equ VADAC24 = 0 ;
.equ VADAC25 = 1 ;
.equ VADAC26 = 2 ;
.equ VADAC27 = 3 ;
.equ VADAC28 = 4 ;
.equ VADAC29 = 5 ;
.equ VADAC30 = 6 ;
.equ VADAC31 = 7 ;
; VADAC2 - V-ADC Accumulated Conversion Result
.equ VADAC16 = 0 ;
.equ VADAC17 = 1 ;
.equ VADAC18 = 2 ;
.equ VADAC19 = 3 ;
.equ VADAC20 = 4 ;
.equ VADAC21 = 5 ;
.equ VADAC22 = 6 ;
.equ VADAC23 = 7 ;
; VADAC1 - V-ADC Accumulated Conversion Result
.equ VADAC08 = 0 ;
.equ VADAC09 = 1 ;
.equ VADAC10 = 2 ;
.equ VADAC11 = 3 ;
.equ VADAC12 = 4 ;
.equ VADAC13 = 5 ;
.equ VADAC14 = 6 ;
.equ VADAC15 = 7 ;
; VADAC0 - V-ADC Accumulated Conversion Result
.equ VADAC00 = 0 ;
.equ VADAC01 = 1 ;
.equ VADAC02 = 2 ;
.equ VADAC03 = 3 ;
.equ VADAC04 = 4 ;
.equ VADAC05 = 5 ;
.equ VADAC06 = 6 ;
.equ VADAC07 = 7 ;
; CADAC3 - C-ADC Accumulated Conversion Result
.equ CADAC24 = 0 ;
.equ CADAC25 = 1 ;
.equ CADAC26 = 2 ;
.equ CADAC27 = 3 ;
.equ CADAC28 = 4 ;
.equ CADAC29 = 5 ;
.equ CADAC30 = 6 ;
.equ CADAC31 = 7 ;
; CADAC2 - C-ADC Accumulated Conversion Result
.equ CADAC16 = 0 ;
.equ CADAC17 = 1 ;
.equ CADAC18 = 2 ;
.equ CADAC19 = 3 ;
.equ CADAC20 = 4 ;
.equ CADAC21 = 5 ;
.equ CADAC22 = 6 ;
.equ CADAC23 = 7 ;
; CADAC1 - C-ADC Accumulated Conversion Result
.equ CADAC08 = 0 ;
.equ CADAC09 = 1 ;
.equ CADAC10 = 2 ;
.equ CADAC11 = 3 ;
.equ CADAC12 = 4 ;
.equ CADAC13 = 5 ;
.equ CADAC14 = 6 ;
.equ CADAC15 = 7 ;
; CADAC0 - C-ADC Accumulated Conversion Result
.equ CADAC00 = 0 ;
.equ CADAC01 = 1 ;
.equ CADAC02 = 2 ;
.equ CADAC03 = 3 ;
.equ CADAC04 = 4 ;
.equ CADAC05 = 5 ;
.equ CADAC06 = 6 ;
.equ CADAC07 = 7 ;
; ***** PORTA ************************
; PORTA - Port A Data Register
.equ PORTA0 = 0 ; Port A Data Register bit 0
.equ PA0 = 0 ; For compatibility
.equ PORTA1 = 1 ; Port A Data Register bit 1
.equ PA1 = 1 ; For compatibility
; DDRA - Port A Data Direction Register
.equ DDA0 = 0 ; Data Direction Register, Port A, bit 0
.equ DDA1 = 1 ; Data Direction Register, Port A, bit 1
; PINA - Port A Input Pins
.equ PINA0 = 0 ; Input Pins, Port A bit 0
.equ PINA1 = 1 ; Input Pins, Port A bit 1
; ***** BANDGAP **********************
; BGCSRA - Bandgap Control and Status Register A
.equ BGSC0 = 0 ; Band Gap Sample Configuration
.equ BGSC1 = 1 ; Band Gap Sample Configuration
.equ BGSC2 = 2 ; Band Gap Sample Configuration
; BGCRA - Band Gap Calibration Register A
.equ BGCN0 = 0 ; Band Gap Calibration Nominal
.equ BGCN1 = 1 ; Band Gap Calibration Nominal
.equ BGCN2 = 2 ; Band Gap Calibration Nominal
.equ BGCN3 = 3 ; Band Gap Calibration Nominal
.equ BGCN4 = 4 ; Band Gap Calibration Nominal
.equ BGCN5 = 5 ; Band Gap Calibration Nominal
.equ BGCN6 = 6 ; Band Gap Calibration Nominal
.equ BGCN7 = 7 ; Band Gap Calibration Nominal
; BGCRB - Band Gap Calibration Register B
.equ BGCL0 = 0 ; Band Gap Calibration Linear
.equ BGCL1 = 1 ; Band Gap Calibration Linear
.equ BGCL2 = 2 ; Band Gap Calibration Linear
.equ BGCL3 = 3 ; Band Gap Calibration Linear
.equ BGCL4 = 4 ; Band Gap Calibration Linear
.equ BGCL5 = 5 ; Band Gap Calibration Linear
.equ BGCL6 = 6 ; Band Gap Calibration Linear
.equ BGCL7 = 7 ; Band Gap Calibration Linear
; BGLR - Band Gap Lock Register
.equ BGPL = 0 ; Band Gap Lock
.equ BGPLE = 1 ; Band Gap Lock Enable
; ***** LINUART **********************
; LINCR - LIN Control Register
.equ LCMD0 = 0 ; LIN Command and Mode bit 0
.equ LCMD1 = 1 ; LIN Command and Mode bit 1
.equ LCMD2 = 2 ; LIN Command and Mode bit 2
.equ LENA = 3 ; LIN or UART Enable
.equ LCONF0 = 4 ; LIN Configuration bit 0
.equ LCONF1 = 5 ; LIN Configuration bit 1
.equ LIN13 = 6 ; LIN Standard
.equ LSWRES = 7 ; Software Reset
; LINSIR - LIN Status and Interrupt Register
.equ LRXOK = 0 ; Receive Performed Interrupt
.equ LTXOK = 1 ; Transmit Performed Interrupt
.equ LIDOK = 2 ; Identifier Interrupt
.equ LERR = 3 ; Error Interrupt
.equ LBUSY = 4 ; Busy Signal
.equ LIDST0 = 5 ; Identifier Status bit 0
.equ LIDST1 = 6 ; Identifier Status bit 1
.equ LIDST2 = 7 ; Identifier Status bit 2
; LINENIR - LIN Enable Interrupt Register
.equ LENRXOK = 0 ; Enable Receive Performed Interrupt
.equ LENTXOK = 1 ; Enable Transmit Performed Interrupt
.equ LENIDOK = 2 ; Enable Identifier Interrupt
.equ LENERR = 3 ; Enable Error Interrupt
; LINERR - LIN Error Register
.equ LBERR = 0 ; Bit Error Flag
.equ LCERR = 1 ; Checksum Error Flag
.equ LPERR = 2 ; Parity Error Flag
.equ LSERR = 3 ; Synchronization Error Flag
.equ LFERR = 4 ; Framing Error Flag
.equ LOVERR = 5 ; Overrun Error Flag
.equ LTOERR = 6 ; Frame Time Out Error Flag
.equ LABORT = 7 ; Abort Flag
; LINBTR - LIN Bit Timing Register
.equ LBT0 = 0 ; LIN Bit Timing bit 0
.equ LBT1 = 1 ; LIN Bit Timing bit 1
.equ LBT2 = 2 ; LIN Bit Timing bit 2
.equ LBT3 = 3 ; LIN Bit Timing bit 3
.equ LBT4 = 4 ; LIN Bit Timing bit 4
.equ LBT5 = 5 ; LIN Bit Timing bit 5
.equ LDISR = 7 ; Disable Bit Timing Resynchronization
; LINBRRL - LIN Baud Rate Low Register
.equ LDIV0 = 0 ;
.equ LDIV1 = 1 ;
.equ LDIV2 = 2 ;
.equ LDIV3 = 3 ;
.equ LDIV4 = 4 ;
.equ LDIV5 = 5 ;
.equ LDIV6 = 6 ;
.equ LDIV7 = 7 ;
; LINBRRH - LIN Baud Rate High Register
.equ LDIV8 = 0 ;
.equ LDIV9 = 1 ;
.equ LDIV10 = 2 ;
.equ LDIV11 = 3 ;
; LINDLR - LIN Data Length Register
.equ LRXDL0 = 0 ; LIN Receive Data Length bit 0
.equ LRXDL1 = 1 ; LIN Receive Data Length bit 1
.equ LRXDL2 = 2 ; LIN Receive Data Length bit 2
.equ LRXDL3 = 3 ; LIN Receive Data Length bit 3
.equ LTXDL0 = 4 ; LIN Transmit Data Length bit 0
.equ LTXDL1 = 5 ; LIN Transmit Data Length bit 1
.equ LTXDL2 = 6 ; LIN Transmit Data Length bit 2
.equ LTXDL3 = 7 ; LIN Transmit Data Length bit 3
; LINIDR - LIN Identifier Register
.equ LID0 = 0 ; Identifier bit 0
.equ LID1 = 1 ; Identifier bit 1
.equ LID2 = 2 ; Identifier bit 2
.equ LID3 = 3 ; Identifier bit 3
.equ LID4 = 4 ; Identifier bit 4 or Data Length bit 0
.equ LID5 = 5 ; Identifier bit 5 or Data Length bit 1
.equ LP0 = 6 ; Parity bit 0
.equ LP1 = 7 ; Parity bit 1
; LINSEL - LIN Data Buffer Selection Register
.equ LINDX0 = 0 ; FIFO LIN Data Buffer Index bit 0
.equ LINDX1 = 1 ; FIFO LIN Data Buffer Index bit 1
.equ LINDX2 = 2 ; FIFO LIN Data Buffer Index bit 2
.equ LAINC = 3 ; Auto Increment of Data Buffer Index (Active Low)
; LINDAT - LIN Data Register
.equ LDATA0 = 0 ;
.equ LDATA1 = 1 ;
.equ LDATA2 = 2 ;
.equ LDATA3 = 3 ;
.equ LDATA4 = 4 ;
.equ LDATA5 = 5 ;
.equ LDATA6 = 6 ;
.equ LDATA7 = 7 ;
; ***** CPU **************************
; SREG - Status Register
.equ SREG_C = 0 ; Carry Flag
.equ SREG_Z = 1 ; Zero Flag
.equ SREG_N = 2 ; Negative Flag
.equ SREG_V = 3 ; Two's Complement Overflow Flag
.equ SREG_S = 4 ; Sign Bit
.equ SREG_H = 5 ; Half Carry Flag
.equ SREG_T = 6 ; Bit Copy Storage
.equ SREG_I = 7 ; Global Interrupt Enable
; MCUCR - MCU Control Register
.equ IVCE = 0 ; Interrupt Vector Change Enable
.equ IVSEL = 1 ; Interrupt Vector Select
.equ PUD = 4 ; Pull-up disable
.equ CKOE = 5 ; Clock Output Enable
; MCUSR - MCU Status Register
.equ PORF = 0 ; Power-on reset flag
.equ EXTRF = 1 ; External Reset Flag
.equ BODRF = 2 ; Brown-out Reset Flag
.equ WDRF = 3 ; Watchdog Reset Flag
.equ OCDRF = 4 ; OCD Reset Flag
; SOSCCALA - Slow Oscillator Calibration Register A
.equ SCALA0 = 0 ; Oscillator Calibration Value Bit0
.equ SCALA1 = 1 ; Oscillator Calibration Value Bit1
.equ SCALA2 = 2 ; Oscillator Calibration Value Bit2
.equ SCALA3 = 3 ; Oscillator Calibration Value Bit3
.equ SCALA4 = 4 ; Oscillator Calibration Value Bit4
.equ SCALA5 = 5 ; Oscillator Calibration Value Bit5
.equ SCALA6 = 6 ; Oscillator Calibration Value Bit6
.equ SCALA7 = 7 ; Oscillator Calibration Value Bit7
; SOSCCALB - Oscillator Calibration Register B
.equ SCALB0 = 0 ; Oscillator Calibration Value Bit0
.equ SCALB1 = 1 ; Oscillator Calibration Value Bit1
.equ SCALB2 = 2 ; Oscillator Calibration Value Bit2
.equ SCALB3 = 3 ; Oscillator Calibration Value Bit3
.equ SCALB4 = 4 ; Oscillator Calibration Value Bit4
.equ SCALB5 = 5 ; Oscillator Calibration Value Bit5
.equ SCALB6 = 6 ; Oscillator Calibration Value Bit6
.equ SCALB7 = 7 ; Oscillator Calibration Value Bit7
; PLLCSR - PLL Control and Status Register
.equ PLLCIE = 0 ; PLL Lock Change Interrupt Enable
.equ PLLCIF = 1 ; PLL Lock Change Interrupt Flag
.equ LOCK = 4 ; PLL Lock
.equ SWEN = 5 ; PLL Software Enable
; SMCR - Sleep Mode Control Register
.equ SE = 0 ; Sleep Enable
.equ SM0 = 1 ; Sleep Mode Select bit 0
.equ SM1 = 2 ; Sleep Mode Select bit 1
.equ SM2 = 3 ; Sleep Mode Select bit 2
; GPIOR2 - General Purpose IO Register 2
.equ GPIOR20 = 0 ; General Purpose IO Register 2 bit 0
.equ GPIOR21 = 1 ; General Purpose IO Register 2 bit 1
.equ GPIOR22 = 2 ; General Purpose IO Register 2 bit 2
.equ GPIOR23 = 3 ; General Purpose IO Register 2 bit 3
.equ GPIOR24 = 4 ; General Purpose IO Register 2 bit 4
.equ GPIOR25 = 5 ; General Purpose IO Register 2 bit 5
.equ GPIOR26 = 6 ; General Purpose IO Register 2 bit 6
.equ GPIOR27 = 7 ; General Purpose IO Register 2 bit 7
; GPIOR1 - General Purpose IO Register 1
.equ GPIOR10 = 0 ; General Purpose IO Register 1 bit 0
.equ GPIOR11 = 1 ; General Purpose IO Register 1 bit 1
.equ GPIOR12 = 2 ; General Purpose IO Register 1 bit 2
.equ GPIOR13 = 3 ; General Purpose IO Register 1 bit 3
.equ GPIOR14 = 4 ; General Purpose IO Register 1 bit 4
.equ GPIOR15 = 5 ; General Purpose IO Register 1 bit 5
.equ GPIOR16 = 6 ; General Purpose IO Register 1 bit 6
.equ GPIOR17 = 7 ; General Purpose IO Register 1 bit 7
; GPIOR0 - General Purpose IO Register 0
.equ GPIOR00 = 0 ; General Purpose IO Register 0 bit 0
.equ GPIOR01 = 1 ; General Purpose IO Register 0 bit 1
.equ GPIOR02 = 2 ; General Purpose IO Register 0 bit 2
.equ GPIOR03 = 3 ; General Purpose IO Register 0 bit 3
.equ GPIOR04 = 4 ; General Purpose IO Register 0 bit 4
.equ GPIOR05 = 5 ; General Purpose IO Register 0 bit 5
.equ GPIOR06 = 6 ; General Purpose IO Register 0 bit 6
.equ GPIOR07 = 7 ; General Purpose IO Register 0 bit 7
; DIDR0 - Digital Input Disable Register
.equ PA0DID = 0 ; When this bit is written logic one, the digital input buffer of the corresponding V_ADC pin is disabled.
.equ PA1DID = 1 ; When this bit is written logic one, the digital input buffer of the corresponding V_ADC pin is disabled.
; PRR0 - Power Reduction Register 0
.equ PRTIM0 = 0 ; Power Reduction Timer/Counter0
.equ PRTIM1 = 1 ; Power Reduction Timer/Counter1
.equ PRSPI = 2 ; Power reduction SPI
.equ PRLIN = 3 ; Power Reduction LIN UART Interface
; CLKPR - Clock Prescale Register
.equ CLKPS0 = 0 ; Clock Prescaler Select Bit 0
.equ CLKPS1 = 1 ; Clock Prescaler Select Bit 1
.equ CLKPCE = 7 ; Clock Prescaler Change Enable
; ***** EXTERNAL_INTERRUPT ***********
; EICRA - External Interrupt Control Register
.equ ISC00 = 0 ; External Interrupt Sense Control 0 Bit 0
.equ ISC01 = 1 ; External Interrupt Sense Control 0 Bit 1
; EIMSK - External Interrupt Mask Register
.equ INT0 = 0 ; External Interrupt Request 0 Enable
; EIFR - External Interrupt Flag Register
.equ INTF0 = 0 ; External Interrupt Flag 0
; PCICR - Pin Change Interrupt Control Register
.equ PCIE0 = 0 ; Pin Change Interrupt Enable 0
.equ PCIE1 = 1 ; Pin Change Interrupt Enable 1
; PCIFR - Pin Change Interrupt Flag Register
.equ PCIF0 = 0 ; Pin Change Interrupt Flag 1
.equ PCIF1 = 1 ; Pin Change Interrupt Flag 1
; PCMSK1 - Pin Change Enable Mask Register 1
.equ PCINT2 = 0 ; Pin Change Enable Mask 2
.equ PCINT3 = 1 ; Pin Change Enable Mask 3
.equ PCINT4 = 2 ; Pin Change Enable Mask 4
.equ PCINT5 = 3 ; Pin Change Enable Mask 5
.equ PCINT6 = 4 ; Pin Change Enable Mask 6
.equ PCINT7 = 5 ; Pin Change Enable Mask 7
.equ PCINT8 = 6 ; Pin Change Enable Mask 8
.equ PCINT9 = 7 ; Pin Change Enable Mask 9
; PCMSK0 - Pin Change Enable Mask Register 0
.equ PCINT0 = 0 ; Pin Change Enable Mask 0
.equ PCINT1 = 1 ; Pin Change Enable Mask 1
; ***** WATCHDOG *********************
; WDTCSR - Watchdog Timer Control Register
.equ WDP0 = 0 ; Watch Dog Timer Prescaler bit 0
.equ WDP1 = 1 ; Watch Dog Timer Prescaler bit 1
.equ WDP2 = 2 ; Watch Dog Timer Prescaler bit 2
.equ WDE = 3 ; Watch Dog Enable
.equ WDCE = 4 ; Watchdog Change Enable
.equ WDP3 = 5 ; Watchdog Timer Prescaler Bit 3
.equ WDIE = 6 ; Watchdog Timeout Interrupt Enable
.equ WDIF = 7 ; Watchdog Timeout Interrupt Flag
; WDTCLR - Watchdog Timer Configuration Lock Register
.equ WDCLE = 0 ; Watchdog Timer Comfiguration Lock Enable
.equ WDCL0 = 1 ; Watchdog Timer Comfiguration Lock bit 0
.equ WDCL1 = 2 ; Watchdog Timer Comfiguration Lock bit 1
; ***** WAKEUP_TIMER *****************
; WUTCSR - Wake-up Timer Control and Status Register
.equ WUTP0 = 0 ; Wake-up Timer Prescaler Bit 0
.equ WUTP1 = 1 ; Wake-up Timer Prescaler Bit 1
.equ WUTP2 = 2 ; Wake-up Timer Prescaler Bit 2
.equ WUTE = 3 ; Wake-up Timer Enable
.equ WUTR = 4 ; Wake-up Timer Reset
.equ WUTIE = 6 ; Wake-up Timer Interrupt Enable
.equ WUTIF = 7 ; Wake-up Timer Interrupt Flag
; ***** 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 OSCSEL0 = 0 ; Oscillator Select
.equ SUT0 = 1 ; Select start-up time
.equ SUT1 = 2 ; Select start-up time
.equ CKDIV8 = 3 ; Divide clock by 8
.equ BODEN = 4 ; Enable BOD
.equ SPIEN = 5 ; Enable Serial programming and Data Downloading
.equ EESAVE = 6 ; EEPROM memory is preserved through chip erase
.equ WDTON = 7 ; Watchdog Timer Always On
; HIGH fuse bits
.equ BOOTRST = 0 ; Select Reset Vector
.equ BOOTSZ0 = 1 ; Select Boot Size
.equ BOOTSZ1 = 2 ; Select Boot Size
.equ DWEN = 3 ; Enable debugWire
; ***** 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 = 0x0000
.equ E2END = 0x03ff
.equ EEPROMEND = 0x03ff
.equ EEADRBITS = 10
#pragma AVRPART MEMORY PROG_FLASH 65536
#pragma AVRPART MEMORY EEPROM 1024
#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 = 64
.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 0
.equ PCI0addr = 0x0004 ; Pin Change Interrupt 0
.equ PCI1addr = 0x0006 ; Pin Change Interrupt 1
.equ WDTaddr = 0x0008 ; Watchdog Timeout Interrupt
.equ WUTaddr = 0x000a ; Wakeup Timer Overflow
.equ ICP1addr = 0x000c ; Timer 1 Input capture
.equ OC1Aaddr = 0x000e ; Timer 1 Compare Match A
.equ OC1Baddr = 0x0010 ; Timer 1 Compare Match B
.equ OVF1addr = 0x0012 ; Timer 1 overflow
.equ ICP0addr = 0x0014 ; Timer 0 Input Capture
.equ OC0Aaddr = 0x0016 ; Timer 0 Comapre Match A
.equ OC0Baddr = 0x0018 ; Timer 0 Compare Match B
.equ OVF0addr = 0x001a ; Timer 0 Overflow
.equ LIN_STATUSaddr = 0x001c ; LIN Status Interrupt
.equ LIN_ERRORaddr = 0x001e ; LIN Error Interrupt
.equ SPIaddr = 0x0020 ; SPI Serial transfer complete
.equ VADCaddr = 0x0022 ; Voltage ADC Instantaneous Conversion Complete
.equ VADC_ACCaddr = 0x0024 ; Voltage ADC Accumulated Conversion Complete
.equ CADICaddr = 0x0026 ; C-ADC Instantaneous Conversion Complete
.equ CADRCaddr = 0x0028 ; C-ADC Regular Current
.equ CADACaddr = 0x002a ; C-ADC Accumulated Conversion Complete
.equ ERDYaddr = 0x002c ; EEPROM Ready
.equ SPMRaddr = 0x002e ; SPM Ready
.equ PLLaddr = 0x0030 ; PLL Lock Change Interrupt
.equ INT_VECTORS_SIZE = 50 ; size in words
#endif /* _M64HVEDEF_INC_ */
; ***** END OF FILE ******************************************************