;##############################################
;##                			     ##
;##    Шим для мерцания диодов		     ##
;##                                          ##
;##############################################

;------------------------- Псевдокоманды управления
.nolist ;
.include "tn2313def.inc"	; Присоединение файла описаний
.list				; Включение листинга

.def	temp = r16		; Определение  регистров
.def	temp1 = r17		; 


;------------------------- Начало программного кода

		.cseg 			; Выбор сегмента программного кода
		.org	0		; Устанеовка текущего адреса на ноль

start:	rjmp	init			; Переход на начало программы
		reti			; Внешнее прерывание 0
		reti			; Внешнее прерывание 1
		reti			; Прерывание по захвату таймера T1
		reti			; Прерывание по совпадению T1
		reti			; Прерывание по переполнению T1
		reti			; Прерывание по переполнению T0
		reti			; Прерывание UART прием завершен
		reti			; Прерывание UART регистр данных пуст
		reti			; Прерывание UART передача завершена
		reti			; Прерывание по компаратору
		reti			; Прерывание по изменению на любом контакте
		reti			; Таймер/счетчик 1. Совпадение B 
		reti			; Таймер/счетчик 0. Совпадение B 
		reti			; Таймер/счетчик 0. Совпадение A 
		reti			; USI Стартовая готовность
		reti			; USI Переполнение
		reti			; EEPROM Готовность
		reti			; Переполнение охранного таймера


; ------------------- Модуль инициализации

init:

;-------------------------- Инициализация стека
	
		ldi		temp, RAMEND		; Выбор адреса вершины стека 
		out		SPL, temp		; Запись его в регистр стека

;-------------------------- Инициализация портов В/В
	
		ldi 		temp, $FF		; Инициализация порта PB-на выход		
		out		DDRB, temp		; 
		out		PORTB, temp		; Включение внутренних резисторов			

;--------------------------- Инициализация (выключение) компаратора

		ldi 		temp, 0x80;
		out		ACSR, temp;


;--------------------------- Инициализация таймера T1

	ldi temp, 0b10110011 ;	режим ШИМ с уст пинов в 0 и 1
	out TCCR1A, temp;

	ldi temp, 0b00000101;	тактовая частота с делением на 1024
	out TCCR1B, temp;

	clr temp;		зануление регистров таймера и совпадения
	out OCR1AH, temp;
	out OCR1AL, temp;
	out OCR1BH, temp;
	out OCR1BL, temp;	
	out TCNT1H, temp;
	out TCNT1L, temp;
;--------------------------Основная программа
m2:	
	out OCR1AH, temp;
	out OCR1BH, temp; 	старшие регистры

	ldi temp1, $1;
	out OCR1AL, temp1; 	младшие регистры
	out OCR1BL, temp1;

;--------------------------увеличение скважности импульсов
	inc temp1;
	cpi temp1, 255;
	brlo m2;
	rjmp m2;	
	

			

		












