mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC 16F684 Interrupt an AN2


Autor: MC Bu (drumstick)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen!

Ich habe ein Programm von einer früheren Aufgabe übernommen (ohne 
Beschreibung). Nun funktionieren die Interrupts nicht!



Der Code:

______________________________________________________________________ 
_


list  p=16F684
  #include   <p16F684.inc>
  RADIX     DEC
  errorlevel  -302
  errorlevel  -306

__CONFIG  B'11001111010100'

org     0x00
nop
goto    Init
org     0x04
goto Interrupt


Init    call    InitWatchdocOff
        call    InitOszillator
        call    InitPort
    call  InitTMR
        call  InitTMR2
  call  InitInterrupt
        goto    Main


;Teilprogramm von Init

InitWatchdocOff
    clrwdt
    movlw  b'00001000'
    banksel  WDTCON
    movwf  WDTCON
    banksel  PORTA
    return


;Teilprogramm von Init

InitOszillator
                bsf  STATUS,RP0
    movlw  b'01101000'
    movwf  OSCCON
    movlw  b'00000000'
    movwf  OSCTUNE
    bcf  STATUS,RP0
    return


;Teilprogramm von Init

InitPort                    movlw  b'00000000'
    movwf  PORTA
    movwf  PORTC
    movlw  b'00011101'
    movwf  ADCON0
    movlw  b'00000111'
    movwf  CMCON0
    bsf  STATUS,RP0
    movlw  b'10000000'
    movwf  ANSEL
    movlw  b'00010000'
    movwf  ADCON1
    movlw  b'11111100'
    movwf  TRISA
    movlw  b'11001011'
    movwf  TRISC
    movlw  b'00100000'
    movwf  IOCA
    bcf  STATUS,RP0
    return


;Teilprogramm von Init

InitTMR  movlw  b'00000000'
    movwf  T1CON
    bsf    PIE1,0
    movlw  b'11111111'
    addwf  TMR1IE,1
    movlw  TMR1H_V
    movwf  TMR1H
          movlw  TMR1L_V
    movwf  TMR1L
    bsf  T1CON,TMR1ON
    bcf  PIR1,TMR1IF
    return


;Teilprogramm von Init

InitTMR2
    movlw  b'00000000'
    movwf  T2CON
    movlw  d'255'
    movwf  PR2
    bsf   PIE1,1
    bcf  PIR1,1
    return


;Teilprogramm von Init

InitInterrupt

    bcf  INTCON,1
    bsf     INTCON,4
    bsf     INTCON,6
    bsf     INTCON,7
    return


;Interruptsubroutine

Interrupt
    btfsc  INTCON,1
    goto    EXINT
    btfsc  INTCON,RAIF


Interrupt1
    btfsc  PIR1,TMR1IF
    call  TMR1ir
    btfsc  PIR1,1
    call  TMR2ir
    goto  EXIT

EXINT          bsf     PORTC,5
    bcf     INTCON,1
    goto    EXIT

TMR1ir          bcf  T1CON,TMR1ON

EndTMR  movlw  TMR1H_V
    movwf  TMR1H
    movlw  TMR1L_V
    movwf  TMR1L
    bsf  T1CON,TMR1ON
    bcf  PIR1,TMR1IF
    return

TMR2ir          bcf  T2CON,2
    bsf  PORTC,5
    movlw  d'255'
    movwf  PR2
    bsf   T2CON,2
    bcf  PIR1,1
    return

Hallir          movf  PORTA,w
    movwf  SavePortA
    bcf  INTCON,RAIF
    return
EXIT          retfie


;Hauptprogramm

Main          nop
    btfss  PORTC,0
    goto  links
    bsf  PORTC,4
    bsf  PORTC,5
    goto   End1

links          btfss  PORTC,1
    goto  MotDis
    bcf    PORTC,4
    goto  End1
End1          nop
    goto   Main
    end
______________________________________________________________________ 
_



So wie ich das sehe sind die Interrupts der beiden Timers auch 
konfiguriert/Aktiv!?!!

Aber ich komme gar nie in die Interrupt-Routienen!



Vielen Dank für die Hilfe und Gruess!

M.B

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.