EasyManua.ls Logo

Scanlab RTC 5 PC Interface Board - 6.4 List Handling; 6.4.1 Loading Lists; “Unconditional” Loading

Scanlab RTC 5 PC Interface Board
622 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
RTC
®
5 PC Interface Board
Rev. 1.9 e
6 Developing User Applications
71
innovators for industry
6.4 List Handling
The two list areas (“List 1” and “List 2”) serve as inter-
mediate storage for the continuous loading and
processing of list commands. This chapter describes
the commands that control this data transfer.
6.4.1 Loading Lists
The commands set_start_list_pos, load_list and
other control commands (see below) are used to
enable a list to be filled with list commands. An input
pointer is thereby defined for the selected list. This
input pointer specifies the memory position to which
the subsequent list commands will be transferred.
Lists are self-contained memory blocks for list
commands. Accordingly, if a list is loaded and the end
of the list is reached without setting the input pointer
to another list, then the input pointer will automati-
cally be reset to the start of the current list, where
loading will continue. An automatic change of the
input pointer to another list will never occur, particu-
larly not to the protected buffer area (“List 3”).
When list commands are loaded into list buffer posi-
tions, any commands previously stored there will
thereby be overwritten, even if they have not yet
been processed or are currently being executed. Be
sure not to overwrite commands still needed by your
application (see below).
PCI transfer of the list commands into list memory is
buffered to increase the speed for continuous down-
loads. The buffer’s capacity is 16 commands.
Whenever the buffer is full or when the commands
set_end_of_list, list_return, set_input_pointer
(and related commands), execute_list_pos (and
related commands), auto_change,
auto_change_pos, start_loop or release_rtc are
issued, this automatically results in a flush, so that
the buffered list commands will be transferred to list
memory. Flushing of an incomplete buffer can also be
initiated at any time via
set_input_pointer(get_input_pointer())
. This is
only necessary in some circumstances when list
commands should be processed and list input is not
yet finished (e.g. for external starts).
“Unconditional” Loading
The command set_start_list_1 /_2 sets the input
pointer to the start of the selected list and the
command set_start_list_pos or set_input_pointer
(see page 434) sets the input pointer to the specified
address of the selected list. Regardless of the selected
list’s current status (see "List Status", page 72), the
next list command will be written to this address.
If needed, the current positions of the input and
output pointers can be queried via the commands
get_input_pointer or get_list_pointer and
get_status or get_out_pointer
-
e.g. to ensure that
not-yet-processed list commands won’t be over-
written.

Table of Contents

Related product manuals