[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
макросы для 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
endmNew1 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
endmNew3 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
endmNew_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