PIC 18F2431 nutzung Interruptregister high 0x08 und low 0x16, kompilier Problem

OP #3393022
Lesenswert?
• ▲
▼
Hallo Microcontroller Community,

Bin ziemlicher PIC und Assembler Neuling und habe da ein Problem beim 
Kompilieren.

Ich würde gerne die beiden Interruptregister vom PIC nutzen, high=0x08 
und low=0x18. Habe soweit alle Registerbits gesetzt:


;-----externer Interrupt (INT1)

    bsf INTCON2,INTEDG1     ;Interrupt bei steigender Taktflanke

    bsf INTCON3,INT1IP      ;externer interrupt mit hoher priorität


 ;------Interupt-----

    bsf RCON,IPEN           ;enable Interruptpriorität


    bcf INTCON,T0IF    ;Interrupt Flag Timer0 auf 0
    bsf INTCON,T0IE    ;Enable Bit für Timer0 setzen (Bit 5 INTCOM)
    bsf INTCON,GIE     ;Interrupt Hauptschalter setzen (Bit 7 INTCOM)


    bsf INTCON,PEIE     ;Enable Bit für zusätzliche Interrups


    bsf INTCON3,INT1IE   ;Enable Bit externer Interrupt INT1
    bcf INTCON3,INT1IF   ;Interrupt Flag "externer Interrupt (INT1)" auf 
0



Der externe Interrupt ist high und der Timer Interrupt low, doch wenn 
ich mit    ORG     0x18    den Sprungvektor für den low angebe, kann ich 
das Programm nicht kompilieren. Es erscheint nur die Fehlermeldung:

make[2]: *** [dist/default/production/Infrarotsensor.X.production.hex] 
Fehler 1
make[1]: *** [.build-conf] Fehler 2
make: *** [.build-impl] Fehler 2

BUILD FAILED (exit value 2, total time: 64ms)



Wenn ich die Zeile auskommentiere, kompiliert er Problemlos.
Der Sprung ins high 0x08 funktioniert ohne Problem.

Was habe ich vergessen zu bedenken??

Danke schonmal im vorraus.



low Interruptroutine:



ORG     0x18                    ; Interrupt Vector low
    bcf INTCON,GIE
        movwf   w_temp              ; save W register
        movff   STATUS,status_temp  ; swap status to be saved into W
        movff  BSR,bsr_temp            ; save STATUS register
;----------------------------------------------------------------------- 
-------
;        btfss INTCON,T0IF       ;Test auf Timer-Interrupt
;        btfss PIR1,TMR1IF

        call  Sample


        goto  ExitISRl
;----------------------------------------------------------------------- 
--------
ExitISRl

        movff   bsr_temp, BSR
        movf   w_temp, W                    ; restore W register
        movff   status_temp, STATUS         ; swap status_temp into W,




        bcf INTCON,T0IF      ;Interrupt Flag Timer0 auf 0
        bsf INTCON,GIE       ;Interupt Hauptschalter setzen

        retfie

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.