Hi Leute,
ich hab mich mal wieder an meinen NIBO2 gewagt um etwas zu programmieren.
Das Programm, soll den Nibo solange geradeaus fahren lassen, bis der Wert des copro_distance[2] größer als 3 wird.
Aber, der Motor schaltet irgendwie nicht ab. (letztendlich geht es nur um den unteren teil des Programms).
mfg freekwaveCode:#include <nibo/niboconfig.h> #include <nibo/display.h> #include <nibo/gfx.h> #include <nibo/copro.h> #include <nibo/delay.h> #include <nibo/iodefs.h> #include <nibo/bot.h> #include <avr/interrupt.h> #include <nibo/spi.h> #include <stdio.h> #include <nibo/leds.h> #include <stdint.h> #include <nibo/pwm.h> int main() { sei(); bot_init(); spi_init(); display_init(); leds_init (); pwm_init (); //------------------------------------------------------- copro_ir_startMeasure(); //------------------------------------------------------- leds_set_headlights (1024); //Frontlicht setzen leds_set_status(LEDS_GREEN, 2); leds_set_status(LEDS_GREEN, 3); //------------------------------------------------------- void blinker_links () { // Blinker Links definieren int a = 1; while (a<=10){ leds_set_status (LEDS_ORANGE, 0); leds_set_status (LEDS_ORANGE, 1); delay (100); leds_set_status (LEDS_OFF, 0); leds_set_status (LEDS_OFF, 1); delay (100); a++; } } //------------------------------------------------------- void blinker_rechts () { int b = 1; while(b<=10) // Blinker Rechts definieren { leds_set_status (LEDS_ORANGE, 4); leds_set_status (LEDS_ORANGE, 5); delay (100); leds_set_status (LEDS_OFF, 4); leds_set_status (LEDS_OFF, 5); delay (100); b++; } } //------------------------------------------------------- void warnblinker () { int c = 1; while(c<=10) // Warnblinker definieren { leds_set_status (LEDS_ORANGE, 0); leds_set_status (LEDS_ORANGE, 1); leds_set_status (LEDS_ORANGE, 4); leds_set_status (LEDS_ORANGE, 5); delay (100); leds_set_status (LEDS_OFF, 0); leds_set_status (LEDS_OFF, 1); leds_set_status (LEDS_OFF, 4); leds_set_status (LEDS_OFF, 5); delay (100); c++; } } //------------------------------------------------------- copro_ir_startMeasure(); copro_setSpeedParameters(5, 6, 7); void motor_geradeaus (){ while(1==1){ copro_setSpeed(20, 20); } } //------------------------------------------------------- while(1==1){ delay(10); char text[20]="-- -- -- -- --"; // Co-Prozessor if (copro_update()) { sprintf(text, "x x x x x", (uint16_t)copro_distance[0]/256, (uint16_t)copro_distance[1]/256, (uint16_t)copro_distance[2]/256, (uint16_t)copro_distance[3]/256, (uint16_t)copro_distance[4]/256); while(copro_distance[2]<3){ motor_geradeaus (); } } } return 0; }







Zitieren

Lesezeichen