Blame | Last modification | View Log | Download | RSS feed | ?url?
ifndef __regm103inc
__regm103inc equ 1
save
listing off ; no listing over this file
;****************************************************************************
;* *
;* AS 1.42 - File REGM103.INC *
;* *
;* Contains Bit & Register Definitions for ATmega103 *
;* *
;****************************************************************************
;----------------------------------------------------------------------------
; Memory Limits
E2END equ 4095
RAMSTART equ 0x60,data
RAMEND equ 0x105f,data
FLASHEND label 0x1ffff
;----------------------------------------------------------------------------
; Chip Configuration
MCUCR port 0x35 ; MCU General Control Register
SM0 avrbit MCUCR,3
SM1 avrbit MCUCR,4
SE avrbit MCUCR,5 ; Sleep Enable
SRW avrbit MCUCR,6 ; Wait State Select
SRE avrbit MCUCR,7 ; Enable External SRAM
MCUSR port 0x34 ; MCU Status Register
EXTRF avrbit MCUSR,1 ; External Reset Occured
PORF avrbit MCUSR,0 ; Power-On Reset Occured
XDIV port 0x3c ; XTAL Divide Control Register
XDIVEN avrbit XDIV,7 ; XTAL Divide Enable
XDIV6 avrbit XDIV,6 ; XTAL Divide Select
XDIV5 avrbit XDIV,5
XDIV4 avrbit XDIV,4
XDIV3 avrbit XDIV,3
XDIV2 avrbit XDIV,2
XDIV1 avrbit XDIV,1
XDIV0 avrbit XDIV,0
;----------------------------------------------------------------------------
; EEPROM
include "eem.inc"
;----------------------------------------------------------------------------
; GPIO
PINA port 0x19 ; Port A @ 0x19 (IO) ff.
PINB port 0x16 ; Port B @ 0x16 (IO) ff.
PINC port 0x13 ; Port C @ 0x13 (IO) ff.
PIND port 0x10 ; Port D @ 0x10 (IO) ff.
PINE port 0x01 ; Port E @ 0x01 (IO) ff.
PINF port 0x00 ; Port F @ 0x01 (IO) ff.,
PINF_inponly equ 1 ; Input Only
;----------------------------------------------------------------------------
; Interrupt Vectors
enumconf 2,code
enum INT0_vect=2 ; External Interrupt Request 0
nextenum INT1_vect ; External Interrupt Request 1
nextenum INT2_vect ; External Interrupt Request 2
nextenum INT3_vect ; External Interrupt Request 3
nextenum INT4_vect ; External Interrupt Request 4
nextenum INT5_vect ; External Interrupt Request 5
nextenum INT6_vect ; External Interrupt Request 6
nextenum INT7_vect ; External Interrupt Request 7
nextenum TIMER2_COMP_vect ; Timer/Counter 2 Compare Match
nextenum TIMER2_OVF_vect ; Timer/Counter 2 Overflow
nextenum TIMER1_CAPT_vect ; Timer/Counter 1 Capture Event
nextenum TIMER1_COMPA_vect ; Timer/Counter 1 Compare Match A
nextenum TIMER1_COMPB_vect ; Timer/Counter 1 Compare Match B
nextenum TIMER1_OVF_vect ; Timer/Counter 1 Overflow
nextenum TIMER0_COMP_vect ; Timer/Counter 0 Compare Match
nextenum TIMER0_OVF_vect ; Timer/Counter 0 Overflow
nextenum SPI_STC_vect ; SPI Serial Transfer Complete
nextenum UART_RX_vect ; UART Rx Complete
nextenum UART_UDRE_vect ; UART Data Register Empty
nextenum UART_TX_vect ; UART Tx Complete
nextenum ADC_vect ; ADC Conversion Complete
nextenum EE_READY_vect ; EEPROM Ready
nextenum ANALOG_COMP_vect ; Analog Comparator
;----------------------------------------------------------------------------
; External Interrupts
EICR port 0x3a ; External Interrupt Control Register
ISC40 avrbit EICR,0 ; External Interrupt 4 Sense Control
ISC41 avrbit EICR,1
ISC50 avrbit EICR,2 ; External Interrupt 5 Sense Control
ISC51 avrbit EICR,3
ISC60 avrbit EICR,4 ; External Interrupt 6 Sense Control
ISC61 avrbit EICR,5
ISC70 avrbit EICR,6 ; External Interrupt 7 Sense Control
ISC71 avrbit EICR,7
EIMSK port 0x39 ; External Interrupt Mask Register
INT0 avrbit EIMSK,0 ; Enable External Interrupt 0
INT1 avrbit EIMSK,1 ; Enable External Interrupt 1
INT2 avrbit EIMSK,2 ; Enable External Interrupt 2
INT3 avrbit EIMSK,3 ; Enable External Interrupt 3
INT4 avrbit EIMSK,4 ; Enable External Interrupt 4
INT5 avrbit EIMSK,5 ; Enable External Interrupt 5
INT6 avrbit EIMSK,6 ; Enable External Interrupt 6
INT7 avrbit EIMSK,7 ; Enable External Interrupt 7
EIFR port 0x38 ; External Interrupt Flags Register
INTF4 avrbit EIFR,4 ; External Interrupt 4 Occured
INTF5 avrbit EIFR,5 ; External Interrupt 5 Occured
INTF6 avrbit EIFR,6 ; External Interrupt 6 Occured
INTF7 avrbit EIFR,7 ; External Interrupt 7 Occured
;----------------------------------------------------------------------------
; Timers
TCCR0 port 0x33 ; Timer/Counter 0 Control Register
CS00 avrbit TCCR0,0 ; Timer/Counter 0 Clock Select
CS01 avrbit TCCR0,1
CS02 avrbit TCCR0,2
CTC0 avrbit TCCR0,3 ; Timer/Counter 0 Clear on Compare Match
COM00 avrbit TCCR0,4 ; Timer/Counter 0 Compare Mode
COM01 avrbit TCCR0,5
PWM0 avrbit TCCR0,6 ; Timer/Counter 0 PWM Mode
TCNT0 port 0x32 ; Timer/Counter 0 Value
OCR0 port 0x31
TCCR1A port 0x2f ; Timer/Counter 1 Control Register A
PWM10 avrbit TCCR1A,0 ; Timer/Counter 1 PWM Mode
PWM11 avrbit TCCR1A,1
COM1B0 avrbit TCCR1A,4 ; Timer/Counter 1 Compare Mode B
COM1B1 avrbit TCCR1A,5
COM1A0 avrbit TCCR1A,6 ; Timer/Counter 1 Compare Mode A
COM1A1 avrbit TCCR1A,7
TCCR1B port 0x2e ; Timer/Counter 1 Control Register B
CS10 avrbit TCCR1B,0 ; Timer/Counter 1 Prescaler Setting
CS11 avrbit TCCR1B,1
CS12 avrbit TCCR1B,2
CTC1 avrbit TCCR1B,3 ; Timer/Counter 1 Clear on Compare Match
ICES1 avrbit TCCR1B,6 ; Timer/Counter 1 Capture Slope Selection
ICNC1 avrbit TCCR1B,7 ; Timer/Counter 1 Capture Noise Filter
TCNT1L port 0x2c ; Timer/Counter 1 Value LSB
TCNT1H port 0x2d ; Timer/Counter 1 Value MSB
OCR1AL port 0x2a ; Timer/Counter 1 Output Compare Value A LSB
OCR1AH port 0x2b ; Timer/Counter 1 Output Compare Value A MSB
OCR1BL port 0x28 ; Timer/Counter 1 Output Compare Value B LSB
OCR1BH port 0x29 ; Timer/Counter 1 Output Compare Value B MSB
ICR1L port 0x26 ; Timer/Counter 1 Input Capture Value LSB
ICR1H port 0x27 ; Timer/Counter 1 Input Capture Value MSB
TCCR2 port 0x25 ; Timer/Counter 2 Control Register
CS20 avrbit TCCR2,0 ; Timer/Counter 2 Prescaler Setting
CS21 avrbit TCCR2,1
CS22 avrbit TCCR2,2
CTC2 avrbit TCCR2,3 ; Timer/Counter 2 Clear on Compare Match
COM20 avrbit TCCR2,4 ; Timer/Counter 2 Compare Mode
COM21 avrbit TCCR2,5
PWM2 avrbit TCCR2,6 ; Timer/Counter 2 PWM Mode
TCNT2 port 0x24 ; Timer/Counter 2 Value
OCR2 port 0x23 ; Timer/Counter 2 Output Compare Value
TIMSK port 0x37 ; Timer Interrupt Mask Register
TOIE0 avrbit TIMSK,0 ; Timer/Counter 0 Overflow Interrupt Enable
OCIE0 avrbit TIMSK,1 ; Timer/Counter 0 Output Compare Interrupt Enable
TOIE1 avrbit TIMSK,2 ; Timer/Counter 1 Overflow Interrupt Enable
OCIE1B avrbit TIMSK,3 ; Timer/Counter 1 Output Compare Interrupt Enable B
OCIE1A avrbit TIMSK,4 ; Timer/Counter 1 Output Compare Interrupt Enable A
TICIE1 avrbit TIMSK,5 ; Timer/Counter 1 Input Capture Interrupt Enable
TOIE2 avrbit TIMSK,6 ; Timer/Counter 2 Overflow Interrupt Enable
OCIE2 avrbit TIMSK,7 ; Timer/Counter 2 Output Compare Interrupt Enable
TIFR port 0x36 ; Timer Interrupt Flag Register
ASSR port 0x30 ; Asynchronous Status Register
TCR0UB avrbit ASSR,0 ; Timer/Counter Control Register 0 Update Busy
OCR0UB avrbit ASSR,1 ; Output Compare Register 0
TCN0UB avrbit ASSR,2 ; Timer/Counter 0 Update Busy
AS0 avrbit ASSR,3 ; Asynchronous Timer/Counter 0
;----------------------------------------------------------------------------
; Watchdog Timer
include "wdm21.inc"
WDTOE avrbit WDTCR,4 ; Turn-Off Enable
;----------------------------------------------------------------------------
; UART
include "uart90.inc"
;----------------------------------------------------------------------------
; SPI
include "spi90.inc"
;----------------------------------------------------------------------------
; A/D Converter
ADMUX port 0x07 ; Multiplexer Selection
MUX2 avrbit ADMUX,2
MUX1 avrbit ADMUX,1
MUX0 avrbit ADMUX,0
ADCSR port 0x06 ; Control/Status Register
ADEN avrbit ADCSR,7 ; Enable ADC
ADSC avrbit ADCSR,6 ; Start Conversion
ADIF avrbit ADCSR,4 ; Interrupt Flag
ADIE avrbit ADCSR,3 ; Interrupt Enable
ADPS2 avrbit ADCSR,2 ; Prescaler Select
ADPS1 avrbit ADCSR,1
ADPS0 avrbit ADCSR,0
ADCH port 0x05 ; Data Register
ADCL port 0x04
;----------------------------------------------------------------------------
; Analog Comparator
include "ac90.inc"
restore ; re-enable listing
endif ; __regm103inc