; Автор:	shilow@ukr.net
; Дата:
; Название:
; Версия:
; Имя файла:
; Для AVR:	ATmega32A
; Тактовая частота:
; Выполняемые функции:
;
;

;******************************
.listmac	; развернём макросы
; инклуды
.nolist
.include "m32Adef.inc"
.list

;******************************
; опредления
.def temp = r16		; рабочая переменная

;******************************
; константы
.equ a = 0		; sample

;******************************
; ячейки в СОЗУ, 2KB
.DSEG
;.ORG	SRAM_START
Sample:	.byte	30

;******************************
; константы в EEPROM, 1KB
.ESEG
smpl1:	.DW	0x0000	; sample 1
smpl2:	.DB	0x05	; sample 2

;******************************
; память программ, 32KB
.CSEG
.ORG 0

;******************************
; Таблица векторов прерываний
	jmp	RESET		; Reset Handler
	jmp	EXT_INT0	; IRQ0 Handler
	jmp	EXT_INT1	; IRQ1 Handler
	jmp	EXT_INT2	; IRQ2 Handler
	jmp	TIM2_COMP	; Timer2 Compare Handler
	jmp	TIM2_OVF	; Timer2 Overflow Handler
	jmp	TIM1_CAPT	; Timer1 Capture Handler
	jmp	TIM1_COMPA	; Timer1 CompareA Handler
	jmp	TIM1_COMPB	; Timer1 CompareB Handler
	jmp	TIM1_OVF	; Timer1 Overflow Handler
	jmp	TIM0_COMP	; Timer0 Compare Handler
	jmp	TIM0_OVF	; Timer0 Overflow Handler
	jmp	SPI_STC		; SPI Transfer Complete Handler
	jmp	USART_RXC	; USART RX Complete Handler
	jmp	USART_UDRE	; UDR Empty Handler
	jmp	USART_TXC	; USART TX Complete Handler
	jmp	ADCC		; ADC Conversion Complete Handler
	jmp	EE_RDY		; EEPROM Ready Handler
	jmp	ANA_COMP	; Analog Comparator Handler
	jmp	TWI		; Two-wire Serial Interface Handler
	jmp	SPM_RDY		; Store Program Memory Ready Handler

;
;******************************
;;;;; Первичная инициализация
RESET:
; Set Stack Pointer to top of RAM
	ldi	temp,high(RAMEND)
	out	SPH,temp
	ldi	temp,low(RAMEND)
	out	SPL,temp
; выкл. аналог, компаратор
	ldi	temp,1<<ACD
	out	ACSR,temp
; Enable interrupts
	sei

;******************************
;;;;; Основная программа
BEGIN:
	rjmp	BEGIN

;******************************
;;;;; Подпрограммы

;******************************
;;;;; Обработчики прерываний

; IRQ0 Handler
EXT_INT0:
	reti

; IRQ1 Handler
EXT_INT1:
	reti

; IRQ2 Handler
EXT_INT2:
	reti

; Timer2 Compare Handler
TIM2_COMP:
	reti

; Timer2 Overflow Handler
TIM2_OVF:
	reti

; Timer1 Capture Handler
TIM1_CAPT:
	reti

; Timer1 CompareA Handler
TIM1_COMPA:
	reti

; Timer1 CompareB Handler
TIM1_COMPB:
	reti

; Timer1 Overflow Handler
TIM1_OVF:
	reti

; Timer0 Compare Handler
TIM0_COMP:
	reti

; Timer0 Overflow Handler
TIM0_OVF:
	reti

; SPI Transfer Complete Handler
SPI_STC:
	reti

; USART RX Complete Handler
USART_RXC:
	reti

; UDR Empty Handler
USART_UDRE:
	reti

; USART TX Complete Handler
USART_TXC:
	reti

; ADC Conversion Complete Handler
ADCC:
	reti

; EEPROM Ready Handler
EE_RDY:
	reti

; Analog Comparator Handler
ANA_COMP:
	reti

; Two-wire Serial Interface Handler
TWI:
	reti

; Store Program Memory Ready Handler
SPM_RDY:
	reti

.exit
