A simple way to check how much RAM is used/available is to open the .asm file generated
after compiling.
Example;
File name blink.bas. Open blink.asm after compiling, and you'll see something like this;Code:DEFINE OSC 20 X VAR PORTB Y VAR BYTE loop: FOR Y = 0 TO 7 HIGH 0 'Turn on LED connected to RB0 Pause 50 'Delay for .5 seconds Low 0 'Turn off LED connected to RB0 Pause 50 'Delay for .5 seconds NEXT Y GoTo loop 'Go back to loop and blink LED forever End
PBP system variables are from R0 to RR2. Your Y variable is the last one at 018h.Code:#define OSC 20 RAM_START EQU 00020h RAM_END EQU 001EFh RAM_BANKS EQU 00004h BANK0_START EQU 00020h BANK0_END EQU 0007Fh BANK1_START EQU 000A0h BANK1_END EQU 000EFh BANK2_START EQU 00110h BANK2_END EQU 0016Fh BANK3_START EQU 00190h BANK3_END EQU 001EFh EEPROM_START EQU 02100h EEPROM_END EQU 021FFh R0 EQU RAM_START + 000h R1 EQU RAM_START + 002h R2 EQU RAM_START + 004h R3 EQU RAM_START + 006h R4 EQU RAM_START + 008h R5 EQU RAM_START + 00Ah R6 EQU RAM_START + 00Ch R7 EQU RAM_START + 00Eh R8 EQU RAM_START + 010h FLAGS EQU RAM_START + 012h GOP EQU RAM_START + 013h RM1 EQU RAM_START + 014h RM2 EQU RAM_START + 015h RR1 EQU RAM_START + 016h RR2 EQU RAM_START + 017h _Y EQU RAM_START + 018h
Depending on how complex your BASIC program is, PBP might need to create a few
temporary variables. If it does these will show up in the .asm file like the ones above.
RAM_START and RAM_END will change depending on the PIC you compile for.




Bookmarks