IDEC High Performance Series User Manual

Page 992

Advertising
background image

5 Script Coding Examples

20-28

WindO/I-NV2 User’s Manual

Script

This script stores the values of LDR10 through LDR19 in LDR100 through LDR109.
It operates as follows.
First, the indirect value LDR0 is initialized and set to 0.
First iteration (loop): The value of LDR0 is 0, so the condition “[LDR 0] < 10” is true and the statements inside while
are executed.

• The value of LDR10, 0 words from LDR10, is stored in LDR100, 0 words from LDR100.
• 1 is added to the value of the indirect value LDR0 so that it becomes 1.

Second iteration (loop): The value of LDR0 is 1, so the condition “[LDR 0] < 10” is true and the statements inside
while are executed.

• The value of LDR11, 1 word from LDR10, is stored in LDR101, 1 word from LDR100.
• 1 is added to the value of the indirect value LDR0 so that it becomes 2.

:

(Repeats in this manner for the third to ninth iterations)

:

Tenth iteration (loop): The value of LDR0 is 9, so the condition “[LDR 0] < 10” is true and the statements inside while
are executed.

• The value of LDR19, 9 words from LDR10, is stored in LDR109, 9 words from LDR100.
• 1 is added to the value of the indirect value LDR0 so that it becomes 10.

The value of LDR0 is 10, so the condition “[LDR 0] < 10” is false and execution breaks out of the while loop.
After execution, the values of LDR100 through LDR109 are the values of LDR10 through LDR19.

Example 5.1.9

Indirect write and indirect read using iteration (while statement)

// Transfer LDR10 through LDR19 to LDR100 through LDR109

// Initialize the indirect value

[LDR 0] = 0;

// Loop ten times

while ([LDR 0] < 10)

{

// Transfer 1 word by indirect assignment

OFFSET([LDR 100], [LDR 0]) = OFFSET([LDR 10], [LDR 0]);

// Increment indirect value

[LDR 0] = [LDR 0] + 1

}

Advertising
This manual is related to the following products: