Blame | Last modification | View Log | Download | RSS feed | ?url?
ifndef __regtn40inc
__regtn40inc equ 1
save
listing off ; kein Listing ueber diesen File
;****************************************************************************
;* *
;* AS 1.42 - File REGTN40.INC *
;* *
;* Contains Bit & Register Definitions for ATtiny40 *
;* *
;****************************************************************************
;----------------------------------------------------------------------------
; Memory Limits
RAMSTART equ 0x40,data ; start address SRAM
RAMEND equ 0x13f,data ; end address SRAM
FLASHEND label 4095 ; end address Flash
;----------------------------------------------------------------------------
; Chip Configuration
RSTFLR port 0x3b ; Reset Flag Register
WDRF avrbit RSTFLR,3 ; Watchdog Reset Flag
BORF avrbit RSTFLR,2 ; Brown-out Reset Flag
EXTRF avrbit RSTFLR,1 ; External Reset Flag
PORF avrbit RSTFLR,0 ; Power-on Reset Flag
OSCCAL port 0x39 ; Oscillator Calibration
CLKPSR port 0x36 ; Clock Prescaler Register
CLKPS0 avrbit CLKPSR,0 ; Clock Prescaler Select
CLKPS1 avrbit CLKPSR,1
CLKPS2 avrbit CLKPSR,2
CLKPS3 avrbit CLKPSR,3
CLKMSR port 0x37 ; Clock Main Settings Register
CLKMS0 avrbit CLKMSR,0 ; Clock Main Select Bits
CLKMS1 avrbit CLKMSR,1
MCUCR port 0x3a ; MCU Control Register
SE avrbit MCUCR,0 ; Sleep Mode Enable
SM0 avrbit MCUCR,1 ; Sleep Mode Select
SM1 avrbit MCUCR,2
SM2 avrbit MCUCR,3
BODS avrbit MCUCR,4 ; BOD Sleep
PRR port 0x35 ; Power Reduction Register
PRADC avrbit PRR,0 ; Power Reduction A/D Converter
PRTIM0 avrbit PRR,1 ; Power Reduction Timer/Counter 0
PRTIM1 avrbit PRR,2 ; Power Reduction Timer/Counter 1
PRSPI avrbit PRR,3 ; Power Reduction SPI
PRTWI avrbit PRR,4 ; Power Reduction TWI
CCP port 0x3c ; Configuration Change Protection Register
;----------------------------------------------------------------------------
; EEPROM/Flash Access
NVMCSR port 0x32 ; Non-Volatile Memory Control and Status Register
NVMBSY avrbit NVMCSR,7 ; Non-Volatile Memory Busy
NVMCMD port 0x33 ; Non-Volatile Memory Command Register
NVMCMD0 avrbit NVMCMD,0 ; Non-Volatile Memory Command
NVMCMD1 avrbit NVMCMD,1
NVMCMD2 avrbit NVMCMD,2
NVMCMD3 avrbit NVMCMD,3
NVMCMD4 avrbit NVMCMD,4
NVMCMD5 avrbit NVMCMD,5
RAMAR port 0x20 ; RAM Address Register
RAMDR port 0x1f ; RAM Data Register
;----------------------------------------------------------------------------
; GPIO
PINA port 0x00 ; Port A @ 0x00 (IO) ff.
PUEA port 0x03 ; Pull-Up Enable Port A
PUEA0 avrbit PUEA,0
PUEA1 avrbit PUEA,1
PUEA2 avrbit PUEA,2
PUEA3 avrbit PUEA,3
PUEA4 avrbit PUEA,4
PUEA5 avrbit PUEA,5
PUEA6 avrbit PUEA,6
PUEA7 avrbit PUEA,7
PINB port 0x04 ; Port B @ 0x03 (IO) ff.
__PORTB_BITS equ 0x0f ; (bits 0..3)
PUEB port 0x07 ; Pull-Up Enable Port B
PUEB0 avrbit PUEB,0
PUEB1 avrbit PUEB,1
PUEB2 avrbit PUEB,2
PUEB3 avrbit PUEB,3
PINC port 0x1b ; Port C @ 0x1b (IO) ff.
__PORTC_BITS equ 0x3f ; (bits 0..5)
PUEC port 0x1e ; Pull-Up Enable Port C
PUEC0 avrbit PUEC,0
PUEC1 avrbit PUEC,1
PUEC2 avrbit PUEC,2
PUEC3 avrbit PUEC,3
PUEC4 avrbit PUEC,4
PUEC5 avrbit PUEC,5
PCMSK0 port 0x09 ; Pin-Change Mask Register 0
PCINT0 avrbit PCMSK0,0 ; Enable Pin-Change Interrupt 0
PCINT1 avrbit PCMSK0,1 ; Enable Pin-Change Interrupt 1
PCINT2 avrbit PCMSK0,2 ; Enable Pin-Change Interrupt 2
PCINT3 avrbit PCMSK0,3 ; Enable Pin-Change Interrupt 3
PCINT4 avrbit PCMSK0,4 ; Enable Pin-Change Interrupt 4
PCINT5 avrbit PCMSK0,5 ; Enable Pin-Change Interrupt 5
PCINT6 avrbit PCMSK0,6 ; Enable Pin-Change Interrupt 6
PCINT7 avrbit PCMSK0,7 ; Enable Pin-Change Interrupt 7
PCMSK1 port 0x0a ; Pin-Change Mask Register 1
PCINT8 avrbit PCMSK1,0 ; Enable Pin-Change Interrupt 8
PCINT9 avrbit PCMSK1,1 ; Enable Pin-Change Interrupt 9
PCINT10 avrbit PCMSK1,2 ; Enable Pin-Change Interrupt 10
PCINT11 avrbit PCMSK1,3 ; Enable Pin-Change Interrupt 11
PCMSK2 port 0x1a ; Pin-Change Mask Register 2
PCINT12 avrbit PCMSK2,0 ; Enable Pin-Change Interrupt 12
PCINT13 avrbit PCMSK2,1 ; Enable Pin-Change Interrupt 13
PCINT14 avrbit PCMSK2,2 ; Enable Pin-Change Interrupt 14
PCINT15 avrbit PCMSK2,3 ; Enable Pin-Change Interrupt 15
PCINT16 avrbit PCMSK2,4 ; Enable Pin-Change Interrupt 16
PCINT17 avrbit PCMSK2,5 ; Enable Pin-Change Interrupt 17
PORTCR port 0x08 ; Port Control Register
BBMA avrbit PORTCR,0 ; Break-Before-Make Mode Enable Port A
BBMB avrbit PORTCR,1 ; Break-Before-Make Mode Enable Port B
BBMC avrbit PORTCR,2 ; Break-Before-Make Mode Enable Port C
QTCSR port 0x34 ; QTouch Control and Status Register
;----------------------------------------------------------------------------
; Interrupt Vectors
enumconf 1,code
enum INT0_vect=1 ; External Interrupt Request 0
nextenum PCINT0_vect ; Pin Change Interrupt 0
nextenum PCINT1_vect ; Pin Change Interrupt 1
nextenum PCINT2_vect ; Pin Change Interrupt 2
nextenum WDT_vect ; Watchdog Time-out Interrupt
nextenum TIM1_CAPT_vect ; Timer/Counter 1 Capture
nextenum TIM1_COMPA_vect ; Timer/Counter 1 Compare Match A
nextenum TIM1_COMPB_vect ; Timer/Counter 1 Compare Match B
nextenum TIM1_OVF_vect ; Timer/Counter 1 Overflow
nextenum TIM0_COMPA_vect ; Timer/Counter 0 Compare Match A
nextenum TIM0_COMPB_vect ; Timer/Counter 0 Compare Match B
nextenum TIM0_OVF_vect ; Timer/Counter 0 Overflow
nextenum ANA_COMP_vect ; Analog Comparator
nextenum ADC_vect ; ADC Conversion Complete
nextenum TWI_SLAVE_vect ; Two-Wire Interface
nextenum SPI_vect ; Serial Peripheral Interface
nextenum QTRIP_vect ; Touch Sensing
;----------------------------------------------------------------------------
; External Interrupts
ISC00 avrbit MCUCR,6 ; Interrupt Sense Control 0
ISC01 avrbit MCUCR,7
GIMSK port 0x0c ; General Interrupt Mask Register
INT0 avrbit GIMSK,0 ; Enable External Interrupt 0
PCIE0 avrbit GIMSK,4 ; Enable Pin-Change Interrupt 0
PCIE1 avrbit GIMSK,5 ; Enable Pin-Change Interrupt 1
PCIE2 avrbit GIMSK,6 ; Enable Pin-Change Interrupt 2
GIFR port 0x0b ; General Interrupt Flag Register
INTF0 avrbit GIFR,0 ; External Interrupt 0 Occured
PCIF0 avrbit GIFR,4 ; Pin-Change Interrupt 0 Occured
PCIF1 avrbit GIFR,5 ; Pin-Change Interrupt 1 Occured
PCIF2 avrbit GIFR,6 ; Pin-Change Interrupt 2 Occured
;----------------------------------------------------------------------------
; Timers
TCCR0A port 0x19 ; Timer/Counter 0 Control Register A
WGM00 avrbit TCCR0A,0 ; Timer/Counter 0 Waveform Generation Mode
WGM01 avrbit TCCR0A,1
COM0B0 avrbit TCCR0A,4 ; Timer/Counter 0 Output Compare Mode B
COM0B1 avrbit TCCR0A,5
COM0A0 avrbit TCCR0A,6 ; Timer/Counter 0 Output Compare Mode A
COM0A1 avrbit TCCR0A,7
TCCR0B port 0x18 ; Timer/Counter 0 Control Register B
CS00 avrbit TCCR0B,0 ; Timer/Counter 0 Clock Select
CS01 avrbit TCCR0B,1
CS02 avrbit TCCR0B,2
WGM02 avrbit TCCR0B,3
PSR avrbit TCCR0B,4 ; Prescaler Reset
TSM avrbit TCCR0B,5 ; Timer/Counter Synchronization Mode
FOC0B avrbit TCCR0B,6 ; Timer/Counter 0 Force Output Compare Match B
FOC0A avrbit TCCR0B,7 ; Timer/Counter 0 Force Output Compare Match A
TCNT0 port 0x17 ; Timer/Counter 0 Value
OCR0A port 0x16 ; Timer/Counter 0 Output Compare Value A
OCR0B port 0x15 ; Timer/Counter 0 Output Compare Value B
TCCR1A port 0x24 ; Timer/Counter 1 Control Register A
CS10 avrbit TCCR1A,0 ; Timer/Counter 1 Clock Select
CS11 avrbit TCCR1A,1
CS12 avrbit TCCR1A,2
CTC1 avrbit TCCR1A,3 ; Timer/Counter 1 Waveform Generation Mode
ICES1 avrbit TCCR1A,4 ; Timer/Counter 1 Input Capture Edge Select
ICNC1 avrbit TCCR1A,5 ; Timer/Counter 1 Input Capture Noise Canceler
ICEN1 avrbit TCCR1A,6 ; Timer/Counter 1 Input Capture Mode Enable
TCW1 avrbit TCCR1A,7 ; Timer/Counter 1 Width
TCNT1L port 0x23 ; Timer/Counter 1 Value LSB
TCNT1H port 0x27 ; Timer/Counter 1 Value MSB
OCR1A port 0x22 ; Timer/Counter 1 Output Compare Value A
OCR1B port 0x21 ; Timer/Counter 1 Output Compare Value B
TIMSK port 0x26 ; Timer/Counter Interrupt Mask Register
TOIE0 avrbit TIMSK,0 ; Timer/Counter 0 Overflow Interrupt Enable
OCIE0A avrbit TIMSK,1 ; Timer/Counter 0 Output Compare Interrupt Enable A
OCIE0B avrbit TIMSK,2 ; Timer/Counter 0 Output Compare Interrupt Enable B
TOIE1 avrbit TIMSK,3 ; Timer/Counter 1 Overflow Interrupt Enable
OCIE1A avrbit TIMSK,4 ; Timer/Counter 1 Output Compare Interrupt Enable A
OCIE1B avrbit TIMSK,5 ; Timer/Counter 1 Output Compare Interrupt Enable B
ICE1 avrbit TIMSK,7 ; Timer/Counter 1 Input Capture Interrupt Enable
TIFR port 0x25 ; Timer/Counter Interrupt Status Register
;----------------------------------------------------------------------------
; Watchdog Timer
WDTCSR port 0x31 ; Watchdog Control/Status Register
WDP0 avrbit WDTCSR,0 ; Prescaler
WDP1 avrbit WDTCSR,1
WDP2 avrbit WDTCSR,2
WDE avrbit WDTCSR,3 ; Enable watchdog
WDP3 avrbit WDTCSR,5
WDIE avrbit WDTCSR,6 ; Watchdog Interrupt Enable
WDIF avrbit WDTCSR,7 ; Watchdog Interrupt Flag
;----------------------------------------------------------------------------
; Analog Comparator
ACSRA port 0x14 ; Analog Comparator Control and Status Register A
ACIS0 avrbit ACSRA,0 ; Interrupt-Mode
ACIS1 avrbit ACSRA,1
ACIC avrbit ACSRA,2 ; Use Comparator As Capture Signal For Timer 0?
ACIE avrbit ACSRA,3 ; Interrupt Enable
ACI avrbit ACSRA,4 ; Interrupt Flag
ACO avrbit ACSRA,5 ; Analog Comparator Output
ACBG avrbit ACSRA,6 ; Enable Bandgap
ACD avrbit ACSRA,7 ; Disable
ACSRB port 0x13 ; Analog Comparator Control and Status Register B
ACIRS0 avrbit ACSRB,0 ; reserved for QTouch
ACIRS1 avrbit ACSRB,1
ACME avrbit ACSRB,2 ; Analog Comparator Multiplexer Enable
ACCE avrbit ACSRB,3 ; reserved for QTouch
ACLP avrbit ACSRB,5 ; reserved for QTouch
HLEV avrbit ACSRB,6 ; Hysteresis Level
HSEL avrbit ACSRB,7 ; Hysteresis Select
;----------------------------------------------------------------------------
; A/D Converter
ADMUX port 0x10 ; ADC Multiplexer Selection Register
MUX0 avrbit ADMUX,0 ; Analog Channel Selection
MUX1 avrbit ADMUX,1
MUX2 avrbit ADMUX,2
MUX3 avrbit ADMUX,3
ADC0EN avrbit ADMUX,4 ; reserved for QTouch
REFEN avrbit ADMUX,5 ; Enable Reference
REFS avrbit ADMUX,6 ; Reference Selection
ADCSRA port 0x12 ; ADC Control/Status Register A
ADEN avrbit ADCSRA,7 ; Enable ADC
ADSC avrbit ADCSRA,6 ; Start Conversion
ADATE avrbit ADCSRA,5 ; ADC Auto Trigger Enable
ADIF avrbit ADCSRA,4 ; Interrupt Flag
ADIE avrbit ADCSRA,3 ; Interrupt Enable
ADPS2 avrbit ADCSRA,2 ; Prescaler Select
ADPS1 avrbit ADCSRA,1
ADPS0 avrbit ADCSRA,0
ADCSRB port 0x11 ; ADC Control/Status Register A
ADTS0 avrbit ADCSRB,0 ; ADC Auto Trigger Source
ADTS1 avrbit ADCSRB,1
ADTS2 avrbit ADCSRB,2
ADLAR avrbit ADCSRB,3 ; ADC Left Adjust Result
VDPD avrbit ADCSRB,6 ; reserved for QTouch
VDEN avrbit ADCSRB,7 ; reserved for QTouch
ADCL port 0x0e ; ADC Conversion Result LSB
ADCH port 0x0f ; ADC Conversion Result MSB
DIDR0 port 0x0d ; Digital Input Disable Register 0
ADC0D avrbit DIDR0,0 ; ADC0 Digital Input Disable
ADC1D avrbit DIDR0,1 ; ADC1 Digital Input Disable
ADC2D avrbit DIDR0,2 ; ADC2 Digital Input Disable
ADC3D avrbit DIDR0,3 ; ADC3 Digital Input Disable
ADC4D avrbit DIDR0,4 ; ADC4 Digital Input Disable
ADC5D avrbit DIDR0,5 ; ADC5 Digital Input Disable
ADC6D avrbit DIDR0,6 ; ADC6 Digital Input Disable
ADC7D avrbit DIDR0,7 ; ADC7 Digital Input Disable
ADC8D avrbit PORTCR,4 ; ADC8 Digital Input Disable
ADC9D avrbit PORTCR,5 ; ADC9 Digital Input Disable
ADC10D avrbit PORTCR,6 ; ADC10 Digital Input Disable
ADC11D avrbit PORTCR,7 ; ADC11 Digital Input Disable
;----------------------------------------------------------------------------
; SPI
SPCR port 0x30 ; SPI Control Register
SPR0 avrbit SPCR,0 ; Clock Select
SPR1 avrbit SPCR,1
CPHA avrbit SPCR,2 ; Clock Phase
CPOL avrbit SPCR,3 ; Clock Polarity
MSTR avrbit SPCR,4 ; Master/Slave Selection
DORD avrbit SPCR,5 ; Bit Order
SPE avrbit SPCR,6 ; Enable SPI
SPIE avrbit SPCR,7 ; SPI Interrupt Enable
SPSR port 0x2f ; SPI Status Register
SPI2X avrbit SPSR,0 ; Double Speed Mode
WCOL avrbit SPSR,6 ; Write Collision
SPIF avrbit SPSR,7 ; SPI Interrupt Occured?
SPDR port 0x2e ; SPI Data Register
;----------------------------------------------------------------------------
; SPI
TWSCRA port 0x2d ; TWI Slave Control Register A
TWSME avrbit TWSCRA,0 ; TWI Smart Mode Enable
TWPME avrbit TWSCRA,1 ; TWI Promiscuous Mode Enable
TWSIE avrbit TWSCRA,2 ; TWI Stop Interrupt Enable
TWEN avrbit TWSCRA,3 ; TWI Enable
TWASIE avrbit TWSCRA,4 ; TWI Address/Stop Interrupt Enable
TWDIE avrbit TWSCRA,5 ; TWI Data Interrupt Enable
TWSHE avrbit TWSCRA,7 ; TWI SDA Hold Time Enable
TWSCRB port 0x2c ; TWI Slave Control Register B
TWCMD0 avrbit TWSCRB,0 ; TWI Command
TWCMD1 avrbit TWSCRB,1
TWAA avrbit TWSCRB,2 ; TWI Acknowledge Action
TWSSRA port 0x2b ; TWI Slave Status Register A
TWAS avrbit TWSSRA,0 ; TWI Address or Stop
TWDIR avrbit TWSSRA,1 ; TWI Read/Write Direction
TWBE avrbit TWSSRA,2 ; TWI Bus Error
TWC avrbit TWSSRA,3 ; TWI Collision
TWRA avrbit TWSSRA,4 ; TWI Receive Acknowledge
TWCH avrbit TWSSRA,5 ; TWI Clock Hold
TWASIF avrbit TWSSRA,6 ; TWI Address/Stop Interrupt Flag
TWDIF avrbit TWSSRA,7 ; TWI Data Interrupt Flag
TWSA port 0x2a ; TWI Slave Address Register
TWSAM port 0x29 ; TWI Slave Address Mask Register
TWAE avrbit TWSAM,0 ; TWI Address Enable
TWSD port 0x28 ; TWI Slave Data Register
restore
endif ; __regtn40inc