AVR Butterfly M169 ext. Interrupt an PB4

Gast #2133965
Lesenswert?
• ▲
▼
Hallo liebe Forumfreunde.
ich versuche verzweifelt ein Interrupt an PB4 auszulösen. Mit dem 
Simulator klappt es so weit. Wenn ich das Programm zum Butterfly 
übertrage, weigert es sich. Hat jemand eine Idee, woran es liegen 
könnte?

.nolist
.include "m169def.inc"
.list

.cseg
.org 0            ; Programm startet bei Adresse 0x0000

jmp    RESET                 ; Reset Handler
jmp    EXT_INT0              ; IRQ0 Handler
jmp    PC_INT0               ; PCINT0 Handler
jmp    PC_INT1              ; PCINT1 Handler
jmp    TIM2_COMP            ; Timer2 Compare Handler
jmp    TIM2_OVF              ; Timer2 Overflow Handler
jmp    TIM1_CAPT            ; Timer1 Capture Handler
jmp    TIM1_COMPA           ; Timer1 CompareA Handler
jmp    TIM1_COMPB           ; Timer1 CompareB Handler
jmp    TIM1_OVF              ; Timer1 Overflow Handler
jmp    TIM0_COMP            ; Timer0 Compare Handler
jmp    TIM0_OVF              ; Timer0 Overflow Handler
jmp    SPI_STC              ; SPI Transfer Complete Handler
jmp    USART_RXC            ; USART RX Complete Handler
jmp    USART_DRE            ; USART,UDR Empty Handler
jmp    USART_TXC            ; USART TX Complete Handler
jmp    USI_STRT              ; USI Start Condition Handler
jmp    USI_OVFL              ; USI Overflow Handler
jmp    ANA_COMP              ; Analog Comparator Handler
jmp    ADC_CC               ; ADC Conversion Complete Handler
jmp    EE_RDY               ; EEPROM Ready Handler
jmp    SPM_RDY              ; SPM Ready Handler
jmp    LCD_SOF              ; LCD Start of Frame Handler ;

RESET:             ; Main program start

  cbi DDRB,7;
         cbi DDRB,6;
         cbi DDRB,4;
  sbi PORTB,7
  sbi PORTB,6
  sbi PORTB,4

  ldi r16, 0xFF
  out DDRD, r16           ; Port D ist Ausgang

  ldi r16, 0xFF       ; alle LEDs aus
  out PORTD, r16

  ldi      r16, high(RAMEND)
  out      SPH,r16            ; Set Stack Pointer to top of RAM
  ldi      r16, low(RAMEND)
  out      SPL,r16

  ldi   r16, (1<<PCIE1)   ; Freigabe Interrupt PCINT12 an PB4
   out   EIMSK, r16

  ldi   r16, (1<<PCIF1)
   out   EIFR, r16

  ldi   r16, (1<<PCINT12)
   sts   PCMSK1, r16

  sei;
loop:
  cbi PORTD,7    ; LED an PB7 an
  cbi PORTD,6    ; LED an PB6 an
  rjmp loop

 ;
PC_INT1:

  sbi PORTD,7          ; LED an PB7 aus
  sbi PORTD,6    ; LED an PB6 aus
  ldi r16,(1<<PCIF1)
         out EIFR,r16    ; Delete pin change interrupt flags
  reti ;

EXT_INT0:   reti ;
PC_INT0:   reti ;
TIM2_COMP:   reti ;
TIM2_OVF:   reti ;
TIM1_CAPT:   reti ;
TIM1_COMPA: reti ;
TIM1_COMPB: reti ;
TIM1_OVF:   reti ;
TIM0_COMP:   reti ;
TIM0_OVF:   reti ;
SPI_STC:   reti ;
USART_RXC:   reti ;
USART_DRE:   reti ;
USART_TXC:   reti ;
USI_STRT:   reti ;
USI_OVFL:   reti ;
ANA_COMP:   reti ;
ADC_CC:   reti ;
EE_RDY:   reti ;
SPM_RDY:   reti ;
LCD_SOF:   reti ;

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.