[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-gcc-list] Re: Reset on TIMER1 Overflow
From: |
Steve Franks |
Subject: |
[avr-gcc-list] Re: Reset on TIMER1 Overflow |
Date: |
Mon, 26 Feb 2007 11:15:46 -0700 |
Message: 1
Date: Wed, 21 Feb 2007 22:38:35 -0600 (CST)
From: "Kevin Neff" <address@hidden>
Subject: [avr-gcc-list] Reset on TIMER1 Overflow
To: address@hidden
Message-ID: <address@hidden>
Content-Type: text/plain;charset=iso-8859-1
I have an ATMega128 that is resetting unexpectantly after
about 10 seconds. This is a surprise because
1. The WDT is off--fuses are correct & wdt_disable() is
called early in the program.
2. The interrupt handler (TIMER1_OVF_vect) gets a
value from flash and places it in TCNT1H and TCNT1L
(in the correct order),
3. A debugging signal (a 0.5-second buzz, LED flash) in
the interrupt handler does not get executed.
4. Disabling the overflow interrupt for TIMER1 (TIMSK,
bit 2) fixes the problem.
5. My default interrupt handler overrides resets but also
does not seem to be called (buzzer doesn't sound, LED
doesn't turn on).
Maybe I'm missing something obvious. Anyone have an idea
where I could start looking for clues?
--Kevin
Kevin,
The first thing I would do is look at your .lst file (if you aren't
getting one the mfile utility in the winavr distribution will create a
makefile that generates .lst files, assuming you are on windows, not
unix)
The interrupt handlers are at/near the start of ram, and the table is
reasonably obvious as I recall - see if it looks correct first of all.
The iom128.h file should have macros with the integer index of each
specific interrupt, so you can know what's what in the table.
Oh, and please post further non-compiler specific avr questions to
avr-chat instead of avr-gcc.
Steve
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [avr-gcc-list] Re: Reset on TIMER1 Overflow,
Steve Franks <=