![background image](http://html1.mh-extra.com/html/omron/srm1-programing-02-2001/srm1-programing-02-2001_programming-manual_742414495.webp)
7-23
Section
Special Math Instructions
477
The following diagram shows the function of words D to D+N+1.
D
Average value (after N or more executions)
D+1
Used by the system.
D+2
Content of S from the 1
st
execution of AVG(––)
D+3
Content of S from the 2
nd
execution of AVG(––)
D+N+1
Content of S from the N
th
execution of AVG(––)
Precautions
The average value is calculated in binary. Be sure that the content of S is in
binary.
N must be BCD from #0001 to #0064. If the content of N
≥
#0065, AVG(––) will
operate with N=64.
The average value will be rounded off to the nearest integer value. (0.5 is
rounded up to 1.)
Set the contents of D+1 to #0000 to execute AVG(––) from the first scan.
Flags
ER:
Indirectly addressed DM word is non-existent. (Content of
*
DM word is
not BCD, or the DM area boundary has been exceeded.)
One or more operands have been set incorrectly.
D and D+N+1 are not in the same data area.
Example
In the following example, the content of IR 200 is set to #0000 and then increm-
ented by 1 each cycle. For the first two cycles, AVG(––) moves the content of
IR 200 to DM 1002 and DM 1003. On the third and later cycles AVG(––) calcu-
lates the average value of the contents of DM 1002 to DM 1004 and writes that
average value to DM 1000.
@MOV(21)
200
#0000
00001
Address
Instruction
Operands
00000
LD
00001
00001
@MOV(21)
#
0000
200
00002
AVG(––)
200
#
0003
DM
1000
00003
CLC(41)
00004
ADB(50)
200
#
0001
200
AVG(––)
#0003
200
DM 1000
CLC(41)
ADB(50)
#0001
200
200
1
st
cycle
2
nd
cycle
3
rd
cycle
4
th
cycle
DM 1000
0000
0001
0001
0002
Average
DM 1001
Used by the system.
DM 1002
0000
0000
0000
0003
Previous
DM 1003
---
0001
0001
0001
values of
DM 1004
---
---
0002
0002
IR 200
1
st
cycle
2
nd
cycle
3
rd
cycle
4
th
cycle
IR 200
0000
0001
0002
0003