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 會自動清除,所以沒有這個問題。
張貼留言