Выпускной работы

Вид материалаРеферат

Содержание


Приложение Д, Список макросов общего назначения
Приложение Е, Список специализированных макросов
Подобный материал:
1   2   3   4   5   6   7   8   9

Приложение Д, Список макросов общего назначения


МАКРОСЫ ЛОГИЧЕСКИХ УСЛОВИЙ


IF_R.EQ.L MACRO REGISTER,LITERAL,CASE_YES,CASE_NO

При равенстве регистра REGISTER,LITERAL переход на метку CASE_YES, в противном случае CASE_NO


IF_R.EQ.R MACRO REGISTER1,REGISTER2,CASE_YES,CASE_NO

При равенстве REGISTER1 REGISTER2 переход на метку CASE_YES, в противном случае CASE_NO


IF_R.GT.L MACRO REGISTER,LITERAL,CASE_YES,CASE_NO

Если REGISTER больше LITERAL переход на метку CASE_YES, в противном случае CASE_NO


IF_R.LT.L MACRO REGISTER,LITERAL,CASE_YES,CASE_NO

Если регистр REGISTER меньше литерала LITERAL переход на метку CASE_YES, в противном случае CASE_NO


IF_R1.GT.R2 MACRO REGISTER1,REGISTER2,CASE_YES,CASE_NO

Если регистр REGISTER1 больше REGISTER2 переход на метку CASE_YES, в противном случае CASE_NO


Макросы обслуживания прерываний


Макрос блокирование всех прерываний

IntsDisable MACRO


Макрос разблокирования прерываний

IntsEnable MACRO


Макрос сохранения контекста WREG,STATUS,BSR,FSR0

SAVE_CONTEXT MACRO TEMP_WREG,TEMP_STATUS,TEMP_BSR,TEMP_FSR0


Макрос восстановления контекста W,STATUS,BSR,FSR0

RESTORE_CONTEXT MACRO TEMP_WREG,TEMP_STATUS,TEMP_BSR,TEMP_FSR0


Mакросы пересылки константы в регистр

SENDLR MACRO L_FROM,R_TO

SEND2LR MACRO L1_FROM,R1_TO,L2_FROM,R2_TO

SEND3LR MACRO L1_FROM,R1_TO,L2_FROM,R2_TO,L3_FROM,R3_TO

SEND4LR MACRO L1_FROM,R1_TO,L2_FROM,R2_TO,L3_FROM,R3_TO,L4_FROM,R4_TO

МАКРОС КОПИРОВАНИЯ МАССИВ-МАССИВ

COPY_A1A2 MACRO N_BYTES,A1,A2,TEMP_I


Макрос временной задержки с использованием вложенных циклов

Регистры INIT1 и INIT2 определяют длительность задержки

DELAY_P MACRO INIT1,INIT2,TEMP1,TEMP2


Макросы условного перехода


При равенстве регистра X_CASE,литералу CASE_L переход на метку CASE_LABEL

IF_R_EQ_L MACRO X_CASE,CASE_L,CASE_LABEL


При равенстве регистра X_CASE регистру CASE_R переход на метку CASE_LABEL

IF_R_EQ_R MACRO X_CASE,CASE_R,CASE_LABEL


Если регистр X_CASE больше литерала CASE_L переход на метку CASE_LABEL

IF_R_GT_L MACRO X_CASE,CASE_L,CASE_LABEL


Если регистр X_CASE меньше литерала CASE_L переход на метку CASE_LABEL

IF_R_LT_L MACRO X_CASE,CASE_L,CASE_LABEL


Макросы операций С 16-битными числами


Cложение двух 16-битных чисел (ARG1_H:ARG1_L + ARG2_H:ARG2_L = RES_H:RES_L)

ADD1616 MACRO ARG1_H,ARG1_L,ARG2_H,ARG2_L,RES_H,RES_L


Инкрементирование 16-битного числа

INC16 MACRO ARG1_H,ARG1_L


Вычитание двух 16-битных чисел (ARG1_H:ARG1_L + ARG2_H:ARG2_L = RES_H:RES_L)

SUB1616 MACRO ARG1_H,ARG1_L,ARG2_H,ARG2_L,RES_H,RES_L


Сравнение двух 16-битных чисел

COMP1616 MACRO ARG1_H,ARG1_L,ARG2_H,ARG2_L,CASE_G,CASE_LE

Производится сравнение двух 16-битных чисел. Если первое число, больше второго, результат вычитания содержится в регистрах REG_H, REL_L и управление передается на метку CASE_G. Если первое число равно второму, результат вычитания содержится в регистрах REG_H, REL_L и управление передается на метку CASE_GE.

Приложение Е, Список специализированных макросов


Драйвер работы с кнопками


Макрос опроса состояния кнопки. В ненажатом состоянии кнопки подтянуты к земле (лог.0). При нажатых кнопках - лог 1. Результат (опроса 1- кнопка нажата, 0 - не нажата сохраняется в BUTTON,BUT_BIT. Драйвер обеспечивает опрос состояния кнопки PORT_IN,BIT_IN и эмуляцию ее состояния на выходе PORT_OUT,BIT_OUT. При этом работа драйвера может быть заблокирована флагом BUT_STATE,BUT_FLAG. Производится двукратный опрос состояния кнопки с временным интервалом регулируемым параметрами DEL1 и DEL2. Результат опроса 1- кнопка нажата, 0 - не нажата хранится в BUT_STATE_BYTE,BUT_STATE_BIT.

BUTT_ON MACRO PORTX,BITX,BUT_STATE_BYTE,BUT_STATE_BIT,DEL1,DEL2,TEMP1,TEMP2


Макрос управления портом PORTX. При вызове биты PORTX выставляются в состояни, описываемое литералом STATE_ON. В этом состоянии PORTX удерживается в течении времени определяемом параметрами DEL_NUMBER*DEL_PARAMETER*DELPARAMETER

SWITCH_ MACRO PORTX,STATE_ON,STATE_OFF,DEL_NUMBER,DEL_PARAMETER,TEMP0,TEMP1,TEMP2


Временная задержка на таймер0, параметры литералы

TIME_DELAY MACRO COUNT_,LIMIT


Макрос для посылки строб-команд CC1100

STROBE_COM MACRO COM1,COM2


Макрос для перевода CC1100 в RESET.

CC1100_RESET MACRO ECODE

Макрос перевода СС1100 в IDLE состояние. В случае удачного перевода управление передается на метку YES_LABEL. Регистр контроля ERROR_CODE содержит значение литерала ECODE. Макрос использует параметр временной задержки, задаваемый литералом DEL и рабочие регистры: TEMP1,TEMP2,TEMP3.

СС1100_IDLE_STATE MACRO YES_LABEL,ECODE,DEL,TEMP1,TEMP2,TEMP3


Макрос перевода СС1100 В RX-состояние. При удачном переводе управление передается на метку YES_LABEL. Регистр контроля ERROR_CODE содержит значение литерала ECODE. Макрос использует три рабочих регистра TEMP1,TEMP2,TEMP3.

СС1100_RX_STATE MACRO YES_LABEL,DEL_SPI,ECODE,TEMP1,TEMP2,TEMP3


Макрос перевода СС1100 В TX-состояние. При удачном переводе управление передается на метку YES_LABEL. Регистр контроля ERROR_CODE содержит значение литерала ECODE. Макрос использует три рабочих регистра TEMP1,TEMP2,TEMP3.

СС1100_TX_STATE MACRO YES_LABEL,DEL_SPI,ECODE,TEMP1,TEMP2,TEMP3


Макрос заполнения FIFO буфера литералами. BYTE0-BYTE7 задаются как регистры.

WRITE_TX MACRO N_BYTES,LENGTH,ADRESS,BYTE0,BYTE1,BYTE2,BYTE3,BYTE4,BYTE5,BYTE6,BYTE7


Макрос заполнения TX FIFO буфера. BYTE0-BYTE7 задаются как регистры.

WRITE_TXR MACRO N_BYTES,LENGTH,ADRESS,BYTE0,BYTE1,BYTE2,BYTE3,BYTE4,BYTE5,BYTE6,BYTE7


Макрос инициализация чтения RX FIFO буфера.

READ_RX MACRO N_BYTES


Макрос инициализация чтения регистров конфигурации СС1100

READ_CONFIG MACRO ADRESS,CONFIG


Макрос заполнения таблицы мощности.

WRITE_PATABLE MACRO BYTE0,BYTE1,BYTE2,BYTE3,BYTE4,BYTE5,BYTE6,BYTE7


Макрос пересчета RSSI

RSSI_MEAN MACRO RSSI_STATUS,RSSI_VALUE


Управление мотором

MOTOR_DRIVER MACRO PORT,BIT,SOUND_INT,SILENCE_INT,NUMBER,TEMP1,TEMP2,TEMP3,SOFT_WDT