341
Interrupt Functions Section 6-1
Prevention of Duplicate Processing
b. The following example shows duplicate processing by an interrupt
task, which interrupts processing while BSET is writing to a block of
words and yields an incorrect comparison result.
Since the interrupt occurs during BSET(071) processing and before #1234 is
set in D10, the content of D0 and D10 do not match when the comparison is
made in the interrupt task (*1) and output A remains OFF.
In the end (*2), the D0 and D10 both contain #1234 and match, but the correct
comparison result is not reflected in comparison result output A.
+B
 D0
 #0001
 D0
DI
EI
Cyclic task
Disables execution of 
interrupt programs.
Enables execution of 
interrupt programs.
BSET
 #1234
 D0
 D10
CMP
 D0
 D10
A
1234
1234
1234 1234 1234
1234
0502
ABCD
ABCD
ABCD
1234
OFF
OFF*
1
003E
0502
D0
D1
D2
D10
A
1234*
2
OFF
Cyclic task
Interrupt task
Equals Flag
#1234 set in D0.
#1234 set in D1.
#1234 set in D2.
#1234 set in D10.
BSET(071) 
processing
CMP(020) 
processing
Read D0.
Read D1.
Output result.
Compare D0 and D10.
Interrupted.
Continued.
Interrupt occurs.
Interrupt completed.
Flow of Processing