[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-libc-dev] atmega32 and interrupt handler problem
From: |
Andrew S |
Subject: |
Re: [avr-libc-dev] atmega32 and interrupt handler problem |
Date: |
Wed, 16 Jan 2008 09:46:03 -0700 |
User-agent: |
KMail/1.9.6 (enterprise 0.20070907.709405) |
On January 16, 2008 12:56:39 am Joerg Wunsch wrote:
> As Andrew S wrote:
> > Investigating this further, I found that the following corresponded
> > with the microcontroller running the correct interrupt handler for
> > the interrupt in question:
> >
> > ISR(_VECTOR(8))
> > { .. }
>
> That would be TIMER1_COMPB_vect. Are you sure you are running the
> correct timer? ;-) Can you post the entire code?
>
Here is my entire code, I apologize for its quality, i've been fighting with
it and havn't had a good opportunity to clean it up. I'm reasonably confident
i'm running the correct timer, given that i'm certainly seeing the waveform
i'd expect on the OC2 pin.
#include <avr/interrupt.h>
#include <util/delay.h>
ISR(_VECTOR(8))
{
PORTD ^= 0x40;
}
void timer_init(void) {
TCCR2 = 0x1B; //setup timer2
OCR2 = 99; //set top
TIMSK = TIMSK | 0x80 ; // generate interrupt on timer2 match
}
/**********************************************************************/
int main(void) {
PORTD = 0xFF;
DDRD = 0xE0; //Set pin PD7/(OC2) as output, as well as PD5 and PD6
TIMSK= 0;
timer_init();
sei();
for(;;)
{
_delay_ms(10);
PORTD ^= 0x20;
}
return 0;
}
--
Andrew S.