RTC6 boards
Doc. Rev. 1.0.21 en-US
10 RTC6 Commands
386
Ctrl Command execute_list_pos
Function Starts list execution (“List 1” or “List 2”) at the specified position.
Call
execute_list_pos( ListNo, Pos )
Parameters
ListNo
Number of the list to be executed.
As an unsigned 32-bit value.
Allowed values: [uneven: “List 1“, even: “List 2“].
Pos
Address of the first list command to be executed (offset relative to the start
of the respective list).
As an unsigned 32-bit value.
Allowed value range: [0…(2
23
–1)].
Comments • execute_list_pos is not executed (get_error return value =
RTC6_BUSY
), if:
– the BUSY list execution status is set
– a list has been paused by set_wait (PAUSED list execution status set)
• If the INTERNAL-BUSY list execution status is set, execute_list_pos is only executed
with a delay (after INTERNAL-BUSY list execution status has been reset again). No
checks are performed to determine if a list is currently being loaded. During list
processing, the other list (or even the same list) can be simultaneously reloaded (see
also Chapter 6.4 ”List Handling”, page 105).
• Programs in the protected RTC6 List Memory area “List 3” cannot be directly executed
by execute_list_pos. They can only be called from a list (“List 1” or “List 2”) as a
subroutine. Alternatively, the corresponding area can be assigned by config_list to
“List 1” or “List 2”.
• Uneven
ListNo
values cause “List 1” to be executed; otherwise “List 2” is executed. This
allows automatically generated continuous list changing by an incremented count.
• If “List 2” has not been assigned memory (
Mem2
= 0, see config_list) then “List 1“ is
opened.
• If
Pos
is specified as being larger than the RTC6 List Memory area of the respective list
(
Pos
>
Mem1
or
Pos
>
Mem2
), then
Pos
is set to 0.
• The BUSY list status of the selected list is set and the BUSY list status of the other
corresponding list is reset (see read_status). The BUSY list execution status-List
Execution Status (see get_status) is set.
• Execution stops when a set_end_of_list is encountered. If the end of a list area is
reached without encountering a set_end_of_list, then execution continues at the
beginning of the same list area instead of with the next list. The output pointer remains
in the active list area unless a set_end_of_list has been encountered and an
auto_change_pos or start_loop has been previously called. For both lists to be treated
as a single list, you must set the configuration appropriately: for example,
config_list( Mem1+Mem2, 0 )
.