[an error occurred while processing this directive]
PS
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено AK 05 октября 2002 г. 17:28
В ответ на: Начал было сагу писать, но надоело... отправлено AK 05 октября 2002 г. 17:15

Еще кусок деклараций кину, чтоб понятнее было. Да, забыл сказать, проц PIC16С74


; *******
; Context
; *******
CTXW equ 20h ; context W
CTXSTAT equ 21h ; context STATUS
CTXFSR equ 22h ; context FSR
CTXPCLA equ 23h ; context PCLATH
; *****
; Flags
; *****
FLAGS equ 24h ; major flags
BIT_PWRFLD equ 7 ; PFAIL* is active
BIT_EEPROM_BUSY equ 6 ; EEPROM busy flag, set when EEPROM write is in progresss
BIT_S_P_DIS equ 5 ; disable static picture in display task
BIT_POWERUP equ 4 ; power-up restart
BIT_KBD_INH equ 3 ; inhibit keyboard request
BIT_SAME_FRAME equ 2 ; shows that movie frame is the same
BIT_POWER_FAIL equ 1 ; power failed
BIT_PC_PRESENT equ 0 ; IBM PC is connected (full reset required after release)
; ****
; Time
; ****
TFLAGS equ 25h ; time flags
BIT_TIME_OVF equ 7 ; seconds counter overflowed
BIT_T10SEC equ 4 ; tick 10sec
BIT_T1SEC equ 3 ; tick 1sec
BIT_T100MS equ 2 ; tick 100ms
BIT_T10MS equ 1 ; tick 10ms
BIT_T1MS equ 0 ; tick 1ms
TICKL equ 26h ; 1ms ticks decimal decremental counter, low byte
TICKH equ 27h ; hi byte
SECL equ 28h ; seconds incremental counter, low byte
SECM equ 29h ; middle byte
SECH equ 2Ah ; hi byte
; 3 bytes => 4660hr => 194 days
; ***********
; Subroutines
; ***********
SUBCNT equ 2Bh ; subroutine working counter
SUBWRK equ 2Ch ; subroutine working register
INTWRK equ 2Dh ; working register for interrupt
INTCNT equ 2Eh ; working counter for interrupt
; *******
; Working
; *******
CNT equ 2Fh ; working counter
WRK equ 30h ; working register
WRK0 equ 31h
WRK1 equ 32h ;
WRK2 equ 33h ;
WRK3 equ 34h ;

...

; ******
; KEYPAD
; ******
KPDDBNS equ 40h ; keypad debounce time, ms
KEY1 equ 41h ; key1 debounce shift reg (FLAT TYRE)
KEY2 equ 42h ; key2 debounce shift reg (+PRESSURE)
KEY3 equ 43h ; key3 debounce shift reg (-PRESSURE)
KEY4 equ 44h ; key4 debounce shift reg (UNITS)
KEYS equ 45h ; keys status:
; 0 - key1 (flat)
; 1 - key2 (+)
; 2 - key3 (-)
; 3 - key4 (units)
; 4 - key1 long press
; 5 - key2 long press
; 6 - key3 long press
; 7 - key4 long press
KEYS_PRESSED equ 46h ; keys and control
; 0 - key1 (flat)
; 1 - key2 (+)
; 2 - key3 (-)
; 3 - key4 (units)
; 4..6 - counter, used by TASK2 to change speed
; in AUTO mode
OLD_KEYS equ 47h ; copy of previous KEYS_PRESSED - used
; by JMPKEY instruction of TASK6

...

; ******************
; *** Task table ***
; ******************
TASK equ 55h ; task No (1..8=0)
TICKS14 equ 56h ; ticks for the first 4 tasks:
; bits 0,1 - task 1
; bits 2,3 - task 2
; bits 4,5 - task 3
; bits 6,7 - task 4
; combinations: 00 - 10ms
; 01 - 10ms
; 10 - 100ms
; 11 - 1 sec
TICKS58 equ 57h ; ticks for the second 4 tasks:
; bits 0,1 - task 5
; bits 2,3 - task 6
; bits 4,5 - task 7
; bits 6,7 - task 8
TDELAY1 equ 58h ; delay for the task #1
PCLATH1 equ 59h ; return addr hi
PCL1 equ 5Ah ; return addr low
TDELAY2 equ 5Bh ; delay for the task #2
PCLATH2 equ 5Ch ; return addr hi
PCL2 equ 5Dh ; return addr low
TDELAY3 equ 5Eh ; delay for the task #3
PCLATH3 equ 5Fh ; return addr hi
PCL3 equ 60h ; return addr low
TDELAY4 equ 61h ; delay for the task #4
PCLATH4 equ 62h ; return addr hi
PCL4 equ 63h ; return addr low
TDELAY5 equ 64h ; delay for the task #5
PCLATH5 equ 65h ; return addr hi
PCL5 equ 66h ; return addr low
TDELAY6 equ 67h ; delay for the task #6
PCLATH6 equ 68h ; return addr hi
PCL6 equ 69h ; return addr low
TDELAY7 equ 6Ah ; delay for the task #7
PCLATH7 equ 6Bh ; return addr hi
PCL7 equ 6Ch ; return addr low
TDELAY8 equ 6Dh ; delay for the task #8
PCLATH8 equ 6Eh ; return addr hi
PCL8 equ 6Fh ; return addr low


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru