;
;	   hider file for ATmega 48/88/168_(V) chip
;		version 1.02 KOBRA softvare
;		  for version2 assembler!
;------------------------------------------------------
;
;	Projekt _______
;	Filename ______
;	File version __
;	Autor _________
;
;------------------------------------------------------
; основная конфигурация ("по умолчанию"):
; 1 = не запрограммирован (сброшен), 0 = запрограммирован (установлен)


 ***** написать аналогично нижеприведенному и скинуть в общий АВР архив *******


;   старший байт конфигурации:
;(7) RSTDISBL  Select if PC6 is I/O pin or RESET pin , 1 (unprogrammed, PC6 is RESET-pin)
;         однако  When programming the RSTDISBL Fuse Parallel Programming has to be used 
;           to change fuses or perform further programming
;    ( т.е. при RSTDISBL=0 последовательное программирование невозможно )
;(6) WDTON     WDT always on , 1 (unprogrammed, WDT enabled by WDTCR)
;(5) SPIEN     Enable Serial Program and Data Downloading , 0 (programmed, SPI prog. enabled)
;         однако:   SPIEN недоступен в режиме последовательного программирования
;(4) CKOPT     Oscillator options , 1 (unprogrammed)
;         однако:   The CKOPT Fuse functionality depends on the setting of the CKSEL bits
;           When CKOPT is programmed, the Oscillator output will oscillate a full
;            rail-to-rail swing on the output.
;(3) EESAVE   EEPROM memory is preserved through the Chip Erase , 1 (unprogrammed,
;                EEPROM not preserved)
;(2:1) BOOTSZ1:BOOTSZ0   Select Boot Size  , default BOOTSZ1:BOOTSZ10=0:0
;BOOTSZ1:BOOTSZ0_Boot Size_Pg._Apl.Flash.Sect._BotLoad.FlashSect._EndAppl.Sect._BotRes.Adr.
;               |  words |    |               |                  |             |(SrtBotLoadSect)
;      1:1      |   127  |  4 | 0x000 - 0xF7F |  0xF80 - 0xFFF   |  0xF7F      | 0xF80
;      1:0      |   256  |  8 | 0x000 - 0xEFF |  0xF00 - 0xFFF   |  0xEFF      | 0xF00
;      0:1      |   512  | 16 | 0x000 - 0xDFF |  0xE00 - 0xFFF   |  0xDFF      | 0xE00
;      0:0      |  1024  | 32 | 0x000 - 0xBFF |  0xC00 - 0xFFF   |  0xBFF      | 0xC00
;   -------------------------------------------------------------------------------------
;(0) BOOTRST   Select Reset Vector , 1 (unprogrammed)
;             - - - - - - - - -
;             - - - - - - - - -
;   младший байт конфигурации:
;(7) BODLEVEL  Brown out detector trigger level , 1 (unprogrammed)
;             уровень детекции 2,7 Вольта при BODLEVEL=1 и 4,0 Вольта при BODLEVEL=0
;(6) BODEN     Brown out detector enable , 1 (unprogrammed, BOD disabled)
;(5:4) SUT1:SUT0          Select start-up time , default SUT1:SUT0=1:0
;SUT1:SUT0_Start-up.Tm.from Pwr-dn&Pwr-save_Addit.Delay from Rst.(VCC = 5.0V)_Recommended
;   0:0   |           6 CK                 |          -------              | BOD enabled
;   0:1   |           6 CK                 |           4.1 ms              | Fast rising power
;   1:0   |           6 CK                 |           65 ms               | Slowly rising power
;   1:1   |                            Reserved                            |
;   -------------------------------------------------------------------------------------
;(3:2:1:0) CKSEL3:CKSEL2:CKSEL1:CKSEL0    Select Clock source
;                  default CKSEL3:CKSEL2:CKSEL1:CKSEL0=0001 
;   ( The default setting of CKSEL3:0 results in internal RC Oscillator @ 1MHz )
;
;CKOPT_CKSEL3:1_Freq.Rng.(MHz)_Rec.Rng.C1&C2 for Use with Crystals (pF)
;  1  |  101   |  0.4 - 0.9   |      -----------------
;  1  |  110   |  0.9 - 3.0   |          12 - 22
;  1  |  111   |  3.0 - 8.0   |          12 - 22
;  0  |101,110,|  1.0 =/<     |          12 - 22
;     |  111   |              |
;   -------------------------------------------------------------------------------------
; комбинация флаг-битов CKSEL0 и SUT1:SUT0 определяет Start-up Times for the 
;  Crystal Oscillator Clock Selection (см.соотв. таблицы в даташите)
; ----------------------------------------------------------------
;
; выбрана текущая конфигурация проэкта:
;
; RSTDISBL = 1 PC6 is RESET-pin
; WDTON    = 1 WDT enabled by WDTCR
; SPIEN    = 0 SPI prog. enabled
; CKOPT    = 1 "малоамплитудный" выходной сигнал генератора
; EESAVE   = 1 EEPROM not preserved (стирается командой "общее стирание")
; BOOTSZ1:BOOTSZ0 = 0:0  - т.е. прикладная область 0x000-0xBFF бутлоадер 0xC00 - 0xFFF
; BOOTRST = 1 адрес вектора сброса = 0х000 ( иначе /BOOTRST=0/ будет в начале бутсектора )
; размещение таблицы векторов прерываний зависит дополнительно от IVSEL (GICR.1)
;
; BODLEVEL = 1 уровень детекции = 2,7 вольта
; BODEN =  схема BOD деактивирована
; SUT1:SUT0 = 10 по умолчанию
; CKSEL3:CKSEL2:CKSEL1:CKSEL0 = 0001 - встроенный калиброванный R-C генератор 1МГц
;  калибровочная константа автоматически загружается в OSCCAL при системном сбросе
;
;****************************************************************************************
;
; При разработке прикладного программного обеспесения необходимо обратить внимание
;  на следующие имеющие место на данный момент ошибки в работе аппаратно-программного
;  обеспечения МК :
; 1. Работа аналогового компаратора после включения питания некорректна.
;   Компенсацией данного явления после подачи питания может быть последовательность
;   команд "отключить" и затем "включить" компаратор перед применением
;   компаратора (или результатов его работы) в прикладной программе.
; 2. При изменении (записи/перезаписи) содержимого счетных регистров для таймера,
;   работающего в асинхронном режиме могут быть потеряны вызовы прерываний
;   от данного таймера.
;    Как мера устранения рекомендуется обязательная проверка содержимого таймера
;   на границы подхода и/или текущее состояние соответствующее вызывающей ступор
;   величине 0xFF или 0x00 перед записью в (асинхронный) регистр управления
;   таймера(TCCRx), (асинхронный) счетный регистр (TCNTx), или 
;   (асинхронный) регистр Сравнения (OCRx).
; 3. Содержимое регистров сигнатуры и байтов калибровочных констант может быть
;   уничтожено при использовании режима последовательного программирования, если
;   по стечению обстоятельств любая операция доступа к данным данных регистров до
;   абсолютно достоверного завершения предварительно запущенной команды общего
;   стирания кристалла (chiperase). Особо опасно при работе для режимов
;   с активным внутренним RC генератором.
; 4. Для чтения EEPROM запрещено применение команд SТ или STS для установки бита EERE!!!
;   Требуется применение команд IN и/или OUT для модификации флаг-бита EERE
;   в регистре EECR (EECR.0).
;------------------------------------------------------
		.nolist
		.include "m8def.inc" ; "m8Adef.inc" for Atmaga8A chip
		.list
; -----------------------------------------------------
;  .include "define_name project.txt" ; файл объявленных имен, бит и констант
;  .include "macros_name project.txt" ; файл описания макросов
;    вместо name project подставляется имя файла соответствующего проекта
;           шаблоны имеют name project = proto
;______________________________________________________
  .cseg
		.org 0x000
	irq_res:
		rjmp init ; переход к началу программы инициализации системы
; - - - - - - - - - - - - - - - - - - - - - - - - - - -
; блок размещения векторов активных прерываний
;		.org OC0Aaddr
;	irq_t0:
;		rjmp timers_bum ; steps
; - - - - - - - - - - - - - - - - - - - - - - - - - - -
;______________________________________________________
   .org (irq_res+int_vectors_size) ; обход блока векторов прерываний
		init:                    ;блок начальной инициализации кристалла

	.exit
 
