LPL Topics
Array Operations
Using the LI-6400
23-11
pets of LPL code that illustrate differences between declaring arrays and dy-
namic allocation of arrays.
The
INT
array scores exists for the entire time the program is active. The local
array text exists only while the function
TestFct
is active. A 1000 element
FLOAT
array that is created in
TestFct
by the sequence
FLOAT
100
MAKE
IF
RETURN
THEN
:PTR
values
expects two values on the stack: the size of the array to
be created, and a number indicating the type of array to create. We indicate
type by the keyword
FLOAT
(note that itÕs
FLOAT
, not
:FLOAT
!). If
succeeds (if thereÕs enough space to make the array), then the address
of the new array is pushed onto the stack, followed by a 0. If
fails,
only a 1 is pushed onto the stack. When
succeeds, it is up to you to
keep track of the address for future reference, and this is usually done by as-
signing a
PTR
to it. In Figure 23-5, a local
PTR
is assigned; we can do that
because the array is deallocated (using
) before the function is done. If
we wanted to use the new array after the creating function terminates, we
would want to be sure to assign a global
PTR
to the arrayÕs address.
Figure 23-6 illustrates how to do this.
/* scores is a global array */
:INT
scores[20] {1 2 3 4 5 6 7 8 9 10}
:FCT
Main { ... testFct ...}
TestFct
{
/* text is a local array */
0
:CHAR
text[80]
"This is a test" text
=
...
/* Allocate a 1000 element float array.*/
FLOAT
1000
MAKE
IF
RETURN
THEN
:PTR
values
...
/* Dispose of the float array */
values
FREE
}
Figure 23-5. Program outline illustrating use of
.
Summary of Contents for LI-6400
Page 1: ...Using the LI 6400 Portable Photosynthesis System ...
Page 15: ...Part I The Basics ...
Page 16: ......
Page 174: ...Making Measurements Answers to Questions 4 56 Using the LI 6400 4 ...
Page 175: ...Part II Useful Details ...
Page 176: ......
Page 200: ...Standard Tools Power ON Hooks 5 24 Using the LI 6400 5 ...
Page 214: ...Real Time Data Real Time Graphics 6 14 Using the LI 6400 6 ...
Page 234: ...Environmental Control Light Control 7 20 Using the LI 6400 7 ...
Page 244: ...Light Sensor Considerations Gallium Arsenide Phosphide GaAsP Sensor 8 10 Using the LI 6400 8 ...
Page 288: ...Data Logging Making Your Own AutoPrograms 9 44 Using the LI 6400 9 ...
Page 289: ...Part III Working With Files ...
Page 290: ......
Page 312: ...The LPL File System Troubleshooting 10 22 Using the LI 6400 10 ...
Page 340: ...Downloading Files Using a Data Capture Program 11 28 Using the LI 6400 11 ...
Page 375: ...Part IV Configuration Issues ...
Page 376: ......
Page 420: ...Defining User Variables Old Style vs New Style 15 18 Using the LI 6400 15 ...
Page 454: ...Using an Energy Balance Further Reading 17 12 Using the LI 6400 17 ...
Page 455: ...Part V Maintenance Troubleshooting ...
Page 456: ......
Page 572: ...Troubleshooting Useful Information 20 46 Using the LI 6400 20 ...
Page 593: ...Part VI Programming ...
Page 594: ......
Page 622: ...Programming with LPL Compiler Directives 22 28 Using the LI 6400 22 ...
Page 846: ...Index I 16 Using the LI 6400 ...