English
Language : 

M16C Datasheet, PDF (60/262 Pages) Mitsubishi Electric Semiconductor – SINGLE-CHIP 16-BIT CMOS MICROCOMPUTER
Preliminary Specifications REV.B
Mitsubishi microcomputers
Specifications in this manual are tentative and subject to change.
M16C / 6N Group
SINGLE-CHIP 16-BIT CMOS MICROCOMPUTER
Interrupts
Rewrite the interrupt control register
To rewrite the interrupt control register, do so at a point that does not generate the interrupt request for that
register. If there is possibility of the interrupt request occur, rewrite the interrupt control register after the
interrupt is disabled. The program examples are described as follow:
Example 1
INT_SWITCH1:
FCLR
I
;Disable interrupts.
AND.B
#00h, 0055h ;Clear TA0IC int. priority level and int. request bit.
NOP
;Four NOP instructions are required when using HOLD function.
NOP
FSET
I
;Enable interrupts
Example 2
INT_SWITCH2:
FCLR
I
;Disable interrupts.
AND.B
#00h, 0055h ;Clear TA0IC int. priority level and int. request bit.
MOV.W MEM, R0 ;Dummy read
FSET
I
;Enable interrupts
Example 3
INT_SWITCH3:
PUSHC FLG
;Push Flag register onto stack
FCLR
I
;Disable interrupts.
AND.B
#00h, 0055h ;Clear TA0IC int. priority level and int. request bit.
POPC FLG
;Enable interrupts
The reason why two NOP instructions (four when using the HOLD function) or dummy read is inserted
before FSET I in Examples 1 and 2 is to prevent the interrupt enable flag I from being set before the
interrupt control register is rewritten due to effects of the instruction queue.
When an instruction to rewrite the interrupt control register is executed but the interrupt is disabled, interrupt
request bit is not set sometimes even if the interrupt request for that register has been generated. This will
depend on the instruction. If this creates problems, use the below instructions to change the register.
Instructions: AND, OR, BCLR, BSET
60