W77E352 可以算是 winbond 系列中中斷最多的一個,而像之前我使用的 W79E632 的中斷似乎也是跟 W77E352 系出同門。比如 watchdog timer 的中斷號碼都是 12,而 W79E632 的中斷就少了中間的 7~11,現在終於在 W77E352 看到影子了。但是奇怪的是 6 號中斷不知是那一個?
| priority / interrupt number | source | flag | addr | 
| 0 | external interrupt 0 | IE0 | 0003h | 
| 1 | timer 0 overflow | TF0 | 000bh | 
| 2 | external interrupt 1 | IE1 | 0013h | 
| 3 | timer 1 overflow | TF1 | 001bh | 
| 4 | serial port | RI+TI | 0023h | 
| 5 | timer 2 overflow | TF2+EXF2 | 002bh | 
| 6 | ?? | ?? | 0033h | 
| 7 | serial port 1 | RI_1+TI_1 | 003bh | 
| 8 | external interrupt 2 | IE2 | 0043h | 
| 9 | external interrupt 3 | IE3 | 004bh | 
| 10 | external interrupt 4 | IE4 | 0053h | 
| 11 | external interrupt 5 | IE5 | 005bh | 
| 12 | watchdog timer | WDIF | 0063h | 
- INT0,INT1 根據標準的 8051,是可以設定成 edge trigger 或 level trigger,但是由 winbond 提供的 INT2~INT5 卻只能是 edge trigger,而且還各有不同的 edge。
- INT2 is raising edge triggered.
- INT3 is falling edge triggered.
- INT4 is raising edge triggered.
- INT5 is falling edge triggered.
- INT2~INT5 需手動清除中斷旗標,但可以經由設定 T2MOD 的 HCx,變成自動清除。
- INT2~INT5 如果沒有清除中斷旗標,會造成中斷一直重覆,切記。由於 INT0~INT1 會自動清除,所以沒有這個問題。
 

張貼留言