- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 3 von 3

Thema: Auswertungsprogramm funktioniert nicht richtig

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    29
    Beiträge
    661

    Auswertungsprogramm funktioniert nicht richtig

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hi,

    Ich hab mal zu Zeitvertreib ein kleines Ausweichprogramm geschrieben
    um es interesanter zu gestallten habe ich den RP6 alle Hindernis erkennungen
    zählen lassen und wolte sie wenn beide bumper gedrückt sind über die
    serielle Schnittstelle schicken.Nun werden aber die Daten nicht während des
    Programms geschickt sondern erst wenn ich denn Start/Stopp Taster drücke.
    Ich möchte aber lieber das er sie während des Programms abschickt was muss ich verändern ?

    Danke im Vorraus

    Code:
    #include "RP6RobotBaseLib.h"
    int main(void)
    {
    initRobotBase();
    
    powerON();
    
    setLEDs(0b001001);
    
    int a = 0;
    
    int b = 0;
    
    int c = 0;
    
    int d = 0;
    
    int e = 0;
    
    int f = 0;
    
    setACSPwrMed();
    
    moveAtSpeed(160,160);
    
    while(true)
    {
    if(getBumperLeft())
    {
    
    move(85, BWD, DIST_MM(70), true);
    rotate(70, RIGHT, 50, true);
    changeDirection(FWD);
    moveAtSpeed(160,160);
    
    b++;
    
    }
    if(getBumperRight())
    {
    
    move(85, BWD, DIST_MM(70), true);
    rotate(70, LEFT, 50, true);
    changeDirection(FWD);
    moveAtSpeed(160,160);
    
    c++;
    
    }
    
    if(obstacle_left)
    {
    
    setLEDs(0b000001);
    
    move(85, BWD, DIST_MM(70), true);
    rotate(70, RIGHT, 60, true);
    changeDirection(FWD);
    
    setLEDs(0b001001);
    
    moveAtSpeed(160,160);
    
    d++;
    
    }
    if(obstacle_right)
    {
    setLEDs(0b001000);
    move(85, BWD, DIST_MM(70), true);
    rotate(70, LEFT, 60, true);
    changeDirection(FWD);
    setLEDs(0b001001);
    moveAtSpeed(160,160);
    
    e++;
    
    }
    if(obstacle_right && obstacle_left)
    {
    setLEDs(0b001001);
    moveAtSpeed(0,0);
    setMotorDir(BWD,BWD);
    setStopwatch1(0);
    startStopwatch1();
    moveAtSpeed(70,70);
    if(getStopwatch1() > 50000)
    {
    moveAtSpeed(0,0);
    setMotorDir(FWD,FWD);
    setStopwatch1(0);
    }
    moveAtSpeed(160,160);
    setLEDs(0b001001);
    f++;
    
    }
    if(adcBat<600)
    {
    for(a = 0;a>1000;a++)
    {
    setLEDs(0b010101);
    mSleep(150);
    setLEDs(0b101010);
    }
    
    }
    if(getBumperLeft() && getBumperRight())
    {
    writeString_P("a");
    writeInteger(a, DEC);
    writeString_P("b");
    writeInteger(b, DEC);
    writeString_P("c");
    writeInteger(c, DEC);
    writeString_P("d");
    writeInteger(d, DEC);
    writeString_P("e");
    writeInteger(e, DEC);
    writeString_P("f");
    writeInteger(f, DEC);
    a = 0;
    b = 0;
    c = 0;
    d = 0;
    e = 0;
    f = 0;
    }
    task_RP6System();
    task_motionControl();
    
    }
    return 0;
    }
    MfG Martinius

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Nach den Daten muss ein \n gesendet werden um einen Zeilenvorschub zu erzwingen:

    writeString_P("\n");
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    27.09.2009
    Alter
    29
    Beiträge
    661
    gut danke radbruch
    er sendet zwar nicht immer , was warscheinlich daranliegt das er nicht erkennt das beide gleichzeitig gedrückt werden,aber er sendet endlich

    Nochmals vielen Dank
    MfG Martinius

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress