avr-gcc-list
[Top][All Lists]
Advanced

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

[avr-gcc-list] Input capture feature on ATmega128 not working?


From: John Miles
Subject: [avr-gcc-list] Input capture feature on ATmega128 not working?
Date: Fri, 4 Oct 2002 20:35:14 -0700

Hi, all --

I'm trying to get the input capture pin working on my ATmega128 under GCC.
The problem seems to be that every time the input capture interrupt fires,
the chip reboots.

Here's the code:

SIGNAL(SIG_INPUTCAPTURE1)
{
//
// Read and store ICR1 value, and reset timer
//

PORTB = ~(ICR1 >> 8);

TCNT1 = 0;
}

int main(void)
{
//
// Set up 500-ns (2 MHz) timer for input-capture pin PD4
//

cli();

TCCR1B = (1 << CSB1) | (1 << ICNC); // Timer source = system clock/8
TCNT1 = 0; // Clear timer count
TIFR = 1 << ICF1; // Clear ICF1 and pending interrupts
// TIFR = 1 << TOV1;

TIMSK = 1 << TICIE1; // Enable capture event interrupt
// TIMSK = 1 << TOIE1;

DDRD &= ~(1 << 4); // PD4 = input

sei();

//
// Port B = output
//

DDRB = 0xff;

while (1);
}

The commented-out lines above were temporary debug hacks to verify that I
could successfully trap overflows on timer 1, which worked fine. Not shown
above is code to xor the port-B lines with 0xff at the beginning of main()
to demonstrate that the chip is rebooting itself.

Anyone know of any issues surrounding the use of the input-capture interrupt
on an ATmega128 part?  There doesn't seem to be much code out there that
uses this feature on the '128.  Fuses are programmed for full ATmega128 mode
(non-ATmega103-compatible), clock is 16 MHz crystal, compiler is the 3.2
version of GCC for Win32 from the http://www.smartsolutionnet.de/avrgcc/
site.

Thanks! -- john

avr-gcc-list at http://avr1.org



reply via email to

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