104
CHAPTER 3 CLOCK GENERATOR AND CONTROLLER
[Example]
<Note>
Since the register consists of four bits, the DMA suppression function cannot be used for more
than 15 concurrent interrupts. Always give a DMA task a priority that is at least 15 levels higher
than that of other interrupts.
INT-ENTRY
LDI:20 #PDRR, R10
LD @R10, R1 ; GET PDRR VALUE INTO R1
ADD #1, R1
ST R1, @R10 ; PDRR:=PDRR+1, DMA disabled
LDI:20 #int-REG, R10 ; int occurred with int-REG
LDI:8 #10H, R1 ; example, int-flag=#10h
ST R1, @R10 ; CLEAR int-REQ, (but still DMA disabled)
:
; interrupt execute routine
:
LDI:20 #PDRR, R10
LD @R10, R1 ; GET PDRR VALUE INTO R1
ADD2 #-1, R1
ST R1, @R10 ; PDRR:=PDRR-1, DMA may be enabled
RETI