tja jetzt funktioniert es immer noch nicht so ganz:
ich habe zwei variablen eingefügt, die wie ein timer compare interrupt funktionieren sollen,
allerdings kann ich die nicht immer erfolgreich beschreiben:
Code:
static volatile unsigned int odometry_count_r=0;
static volatile unsigned int odometry_count_l=0;
// auch static getestet
volatile unsigned int odometry_comp_r=0;
volatile unsigned int odometry_comp_l=0;

/*wie gesagt compare */
void ( * odometry_l_comp)(void);
void ( * odometry_r_comp)(void);


ISR(INT0_vect)
{
        odometry_count_l++;
        #ifdef __TEST
        set_led(LED_L_Y,1);
        _delay_ms(20);
        set_led(LED_L_Y,0);
        #endif
        
        if(odometry_count_l==odometry_comp_l)
        {
                odometry_l_comp();
        }
}
void _init_odometrie(void)
{
        if(add_mod(_MOD_ODO));
        {
                GICR|= 1<<INT0;
                GICR|= 1<<INT1;
                MCUCR|= 1<<ISC01 | 1<<ISC00;
                MCUCR|= 1<<ISC11 | 1<<ISC10;
                sei();
                #ifdef __TEST
                odometry_l_comp=lauffeuer;
                odometry_r_comp=lauffeuer;
                #else
                odometry_l_comp=nop;
                odometry_r_comp=nop;
                #endif
// das wuerde funktionieren
//              odometry_comp_l=5;
//              odometry_comp_r=5;


         }
}

// aus odtest.c

int main(void)
{
// funktioniert nicht.
        odometry_comp_l=5;
        odometry_comp_r=5;
//auch andersherum getestet
        _init_odometrie();
        while(1);
}
irgendwie kommt mir das komisch vor.
Danke in Vorraus
LittleBoy