Gast
#1260088
Hi,
ich habe ein kleines Problem mit den interrupts am ATmega32 und zwar
will ich aus der isr - Funktion eine Variable übernehmen, der Code icst
annähernd der aus dem GCC - tut. Das Problem ist nun dass der Controller
irgendwie nur 1 led (einer der 2 Ausgänge)anschaltet und dann nichts
mehr macht... hier mein code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
volatile uint8_t count;
//-----------------------------------------------------------------
void long_delay(uint16_t ms)
{
for(; ms>0; ms--) _delay_ms(1);
}
//-----------------------------------------------------------------
void haupt(void)
{
DDRD = 0b01100000;
long_delay(1);
PORTD = 0b00100000;
if (count == 0)
{
PORTD = 0b00100000;
}
else if (count == 1)
{
PORTD = 0b01000000;
}
MCUCR|=(1<<ISC01)|(1<<ISC00);
GICR|=(1<<INT0);
sei();
}
//-----------------------------------------------------------------
ISR(INT0_vect)
{
count ++;
if (count ==2)
{
count = 0;
}
}
//-----------------------------------------------------------------
int main(void)
{
haupt();
while(1);
return 0;
}
kann mir da jemand helfen?