簡體   English   中英

在 Easy68k 上顯示中斷消息的問題

[英]Problem Showing Interrupt message on Easy68k

我正在嘗試使用匯編為 68k 處理器做一個程序。 我正在使用 Easy68k

該程序的主要思想是,當按下重置按鈕以及七段的變化時,會出現一條消息。

當點擊 7 級按鈕時,會出現另一條消息。

重置消息出現並且工作正常,但點擊 7 級中斷按鈕似乎沒有做任何事情。

你能幫我找出問題嗎?

這是代碼:

 ORG    $0
    DC.L $00FFFFF0
    DC.L $00000500
    
    ORG $07C
    DC.L $2000
    
    ORG $500
    MOVEA.L #$E00000, A3
    MOVE.L #0, D1
    LEA SEVEN_SEG_CODE, A2
    
    MOVE #13, D0
    LEA START_TEXT, A1
    TRAP #15
    
    BRA START
    
    
    ORG $2000
LEVEL_7_INTERRUPT:
    MOVE    #13, D0
    LEA TEXT1, A1
    TRAP #15
    MOVE #3, D0
    TRAP #15
    BSR DELAY
    MOVE #13, D0
    LEA TEXT2, A1
    TRAP #15
    BSR DELAY
    MOVE.B $E00012, $E00010
    MOVE.B (A2, D1), (A3)
    ADDA.L #2, A3
    BSR DELAY
    ADD.L #1, D1
    RTE
    
    
DELAY:  MOVE.L #1000000, D5
LOOP2:  SUB.L #1, D5
        BNE LOOP2
        RTS
       
       
START_TEXT: DC.B 'WELCOME HARDWARE RESET',$0D,$0A, 0
TEXT1: DC.B 'WELCOME TL7',$0A,$0D, 0
TEXT2: DC.B 'ANOTHER WELCOME TL7',$0A,$0A, 0
SEVEN_SEG_CODE: DC.B %00000000, %11111111, %00000000, %11111111, %00000000, %11111111, %00000000, %11111111, %00000000, %11111111

        ORG $1000

START:                  ; first instruction of program

* Put program code here
        MOVE.L #0, D6
LOOP:   ADD.L #1, D6
        BSR DELAY
        BRA LOOP
    SIMHALT             ; halt simulator

* Put variables and constants here

    END    START        ; last line of source

您的程序似乎(有點)正確並且在我的安裝中運行良好,至少對於前幾個 7 級中斷。

您是否在“選項”->“啟用異常”中啟用了異常處理?

你不應該在 ISR 中做任何耗時的事情——這在中斷服務例程中被認為是不好的做法。 尤其是“JSR DELAY”調用似乎很危險。 通常的做法是在 ISR 中設置一個變量並在主循環中對其進行操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM