noch zu deinem ersten entwurf:
Zitat Zitat von proevofreak
// RP6 steuert ein Servo an der SL1-LED mit Sleep()

#include "RP6RobotBaseLib.h"
uint8_t i=0;
uint8_t a=0;
void bumpersStateChanged(void)
{

while(bumper_left && i<5)
{setLEDs(1);
sleep(10);
setLEDs(0);
sleep(200-10);
i++;}


while(bumper_right && a<5)
{setLEDs(1);
sleep(20);
setLEDs(0);
sleep(200-20);
i++;}
}


int main()
{
initRobotBase();
BUMPERS_setStateChangedHandler(bumpersStateChanged );



while(true)
{task_RP6System();
}
return 0;
}
du hast bei der 2. bumper-while-schleife gesagt, mache solange bis ... && a<5

in der schleife hast du allerdings "i" inkrementiert, das hat radbruch in seinem entwurf aber schon berücksichtigt...

ich denke, wenn du deine version behalten willst (gibt gründe), dann musst du nur das a durch i ersetzen und hinter jede der beiden schleifen ein "i=0;" einfügen, dann gehts...


MfG Pr0gm4n