[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-libc-dev] [bug #29964] Possible Incorrect Interrupt Vector Addresse

From: Jose Torres
Subject: [avr-libc-dev] [bug #29964] Possible Incorrect Interrupt Vector Addresses for mega168
Date: Wed, 26 May 2010 03:40:10 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv: Gecko/20100401 Firefox/3.6.3


                 Summary: Possible Incorrect Interrupt Vector Addresses for
                 Project: AVR C Runtime Library
            Submitted by: capek
            Submitted on: Wed 26 May 2010 03:40:05 AM GMT
                Category: Header
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Header files
                  Status: None
        Percent Complete: 0%
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 1.6.7
           Fixed Release: None



I have been running into an issue using interrupts with avr-libc 1.6.7 and an

According to the mega168 datasheet the following are a sampling of the
interrupt vector addresses:

Address Labels Code Comments
0x0000 jmp RESET ; Reset Handler
0x0002 jmp EXT_INT0 ; IRQ0 Handler
0x0004 jmp EXT_INT1 ; IRQ1 Handler
0x0006 jmp PCINT0 ; PCINT0 Handler
0x0008 jmp PCINT1 ; PCINT1 Handler
0x000A jmp PCINT2 ; PCINT2 Handler
0x000C jmp WDT ; Watchdog Timer Handler
0x000E jmp TIM2_COMPA ; Timer2 Compare A Handler
0x0010 jmp TIM2_COMPB ; Timer2 Compare B Handler
0x0012 jmp TIM2_OVF ; Timer2 Overflow Handler
0x0014 jmp TIM1_CAPT ; Timer1 Capture Handler
0x0016 jmp TIM1_COMPA ; Timer1 Compare A Handler
0x0018 jmp TIM1_COMPB ; Timer1 Compare B Handler
0x001A jmp TIM1_OVF ; Timer1 Overflow Handler
0x001C jmp TIM0_COMPA ; Timer0 Compare A Handler
0x001E jmp TIM0_COMPB ; Timer0 Compare B Handler
0x0020 jmp TIM0_OVF ; Timer0 Overflow Handler

iom168.h includes the vectors from iomx8.h.

Which state the vectors as follows:

/* External Interrupt Request 0 */
#define INT0_vect            _VECTOR(1)
#define SIG_INTERRUPT0            _VECTOR(1)

/* External Interrupt Request 1 */
#define INT1_vect            _VECTOR(2)
#define SIG_INTERRUPT1            _VECTOR(2)

/* Pin Change Interrupt Request 0 */
#define PCINT0_vect            _VECTOR(3)
#define SIG_PIN_CHANGE0            _VECTOR(3)

/* Pin Change Interrupt Request 0 */
#define PCINT1_vect            _VECTOR(4)
#define SIG_PIN_CHANGE1            _VECTOR(4)

/* Pin Change Interrupt Request 1 */
#define PCINT2_vect            _VECTOR(5)
#define SIG_PIN_CHANGE2            _VECTOR(5)

/* Watchdog Time-out Interrupt */
#define WDT_vect            _VECTOR(6)

/* Timer/Counter2 Compare Match A */
#define TIMER2_COMPA_vect        _VECTOR(7)
#define SIG_OUTPUT_COMPARE2A        _VECTOR(7)

These vectors are correct for the 48 and 88 but different for the 168.



Reply to this item at:


  Message sent via/by Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]