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

Отправлено Romario 16 декабря 2001 г. 13:23
В ответ на: Еще совет : переменные ( ОЗУ ) лучше назови как нибудь. Так удобнее чем с номерами. И могу дать пример проги(+) отправлено Хрыч 16 декабря 2001 г. 13:11

макросы для MPLAB для обьявления переменных в ОЗУ.
Пример для с77/f877


__DAvail set 0x20 ; first RAM location
__RAMTop set 0x6F ; last RAM location

__DAvail1 set 0xA0 ; first RAM location
__RAMTop1 set 0xEF ; last RAM location

__DAvail2 set 0x110 ; first RAM location
__RAMTop2 set 0x16F ; last RAM location

__DAvail3 set 0x190 ; first RAM location
__RAMTop3 set 0x1EF ; last RAM location


__DAvail_Accsses set 0x70 ; first RAM location
__RAMTop_Accsses set 0x7F ; last RAM location


New macro Name,Lenght
NoExpand
if __DAvail > __RAMTop
Error "Out of available RAM (bank 0) / File registers"
endif
Name equ __DAvail
__DAvail = __DAvail + Lenght
if Lenght > 1
if __DAvail > (__RAMTop+1)
Error Error "Out of available RAM (bank 0) / File registers"
endif
endif
Expand
endm

New1 macro Name,Lenght
NoExpand
if __DAvail1 > __RAMTop1
Error "Out of available RAM1 (bank 1) / File registers"
endif
Name equ __DAvail1
__DAvail1 = __DAvail1 + Lenght
if Lenght > 1
if __DAvail1 > (__RAMTop1+1)
Error Error "Out of available RAM (bank 1) / File registers"
endif
endif
Expand
endm


New2 macro Name,Lenght
NoExpand
if __DAvail2 > __RAMTop2
Error "Out of available RAM (bank 2) / File registers"
endif
Name equ __DAvail2
__DAvail2 = __DAvail2 + Lenght
if Lenght > 1
if __DAvail2 > (__RAMTop2+1)
Error Error "Out of available RAM (bank 2) / File registers"
endif
endif
Expand
endm

New3 macro Name,Lenght
NoExpand
if __DAvail3 > __RAMTop3
Error "Out of available RAM (bank 3) / File registers"
endif
Name equ __DAvail3
__DAvail3 = __DAvail3 + Lenght
if Lenght > 1
if __DAvail3 > (__RAMTop3+1)
Error Error "Out of available RAM (bank 3) / File registers"
endif
endif
Expand
endm

New_Accsses macro Name,Lenght
NoExpand
if __DAvail_Accsses > __RAMTop_Accsses
Error "Out of available RAM (accssese) / File registers"
endif
Name equ __DAvail_Accsses
__DAvail_Accsses = __DAvail_Accsses + Lenght
if Lenght > 1
if __DAvail_Accsses > (__RAMTop_Accsses+1)
Error "Out of available RAM (accssese) / File registers"
endif
endif
Expand
endm

чтобы подправить под некий пик, достаточно изменить
__DAvailX и __RAMTopX.

а потом:

New VarByte,1 ; 1 байт
New VarWord,2 ; 2 байта

и т.д.

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

Ответы



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

E-mail: info@telesys.ru