-         

Ergebnis 1 bis 1 von 1

Thema: Odometrie Daten 2x abrufen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.06.2011
    Beiträge
    17

    Odometrie Daten 2x abrufen

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    ich habe hier schonmal ein Thema gepostet: http://www.roboternetz.de/community/...s&goto=newpost
    dieses Thema hat sich erledigt, da jetzt alles funktioniert, doch ich würde jetzt gerne was in meinem jetztigen Programm ändern, ich würde gerne die zuerst gemessenen Odometriedaten nochmal verwenden ich müsste also wissen, wie das aussehen muss hier ist dan Programm,
    Code:
    #include "asuro.h"
    #include "myasuro.h"
    
    int main(void)
    {
    unsigned int odata[2];
        unsigned int ldata[2];                     // Speicherplatz für Odo- und Linedaten
    int i;
    
    Init();
    FrontLED(ON);                             // Linienbeleuchtung einschalten
    Msleep(200);                             // warten bis LED volle Helligkeit erreicht hat
    LineData(ldata);                         // ADC anwärmen
    while(1)
    {
        MotorDir(FWD,FWD);
    while(PollSwitch() == 0)             // folge der Linie bis zum ersten Hinderniss
    {
    LineData(ldata);
    if (ldata [0] > ldata [1])
    {
                    MotorSpeed(200,100);
                }
    else
                {
    MotorSpeed(100,200);
                }
    Sleep(20);                         // Regelung etwas dämpfen
    }
            MotorSpeed(0,0);                     // anhalten weil Hinderniss erkannt wurde
    Msleep(500);
    
    OdometrieData(odata);                 // Becherfarbe ermitteln
    if (odata[0] > 1000)
            {
                for (i=0; i<20; i++)             // Becher aufnehmen (Servoimpuls 20x senden)
        {
                    BackLED(OFF,ON);
                    Msleep(1);                     // Impulslänge 1ms
                    BackLED(OFF,OFF);
                    Msleep(19);                 // Impulspause 19
                }
                MotorDir(RWD,RWD);
    MotorSpeed(0,200);                 // hell bedeutet nach links abbiegen
    }
    else
    {
                for (i=0; i<20; i++)             // Becher aufnehmen (Servoimpuls 20x senden)
        {
        BackLED(OFF,ON);
        Msleep(1);                     // Impulslänge 1ms
        BackLED(OFF,OFF);
        Msleep(19);                 // Impulspause 19ms
        }
                MotorDir(RWD,RWD);
    MotorSpeed(200,0);                 // dunkel bedeutet nach rechts abbiegen
    }
            Msleep(900);                         // eine Sekunde drehen
    MotorSpeed(0,0);
            MotorDir(FWD,FWD);
    
    while(PollSwitch() == 0)             // folge der Linie bis zum zweiten Hinderniss
    {
    LineData(ldata);
    if (ldata [0] > ldata [1])
    { 
                    MotorSpeed(200,100);
                }
    else
    { 
                    MotorSpeed(100,200);
                }
    Sleep(20);
    }
    
    MotorSpeed(0,0);                     // nochmals anhalten
    Msleep(500);
    
    for (i=0; i<20; i++)                 // und Becher wieder ablegen
    {
    BackLED(OFF,ON);
    Msleep(2);                         // Impulslänge 2ms
    BackLED(OFF,OFF);
    Msleep(18);                     // Prima!
    }
    
    OdometrieData(odata);     
                
    // HIER MUSS ICH WISSEN, WIE MAN DIE ZUVOR ERMITTELTEN DATEN NOCHMAL ABRUFEN KANN
    
            if (odata[0] > 1000)
            {
                MotorDir(RWD,RWD);
                MotorSpeed(200,200);
                Msleep(500);
                MotorDir(FWD,RWD);
                MotorSpeed(200,200);                 // hell bedeutet nach links abbiegen
            }
            else
            {
                MotorDir(RWD,RWD);
                MotorSpeed(200,200);
                Msleep(500);
                MotorDir(RWD,FWD);
                MotorSpeed(200,200);                 // dunkel bedeutet nach rechts abbiegen
            }
            Msleep(400);                         // eine Sekunde drehen
    }
    return(0);
    }
    Code-Tags verwenden ! (mod)

    Sowie ich schon erfahren habe geht dass nur weiß ich eben nicht wie
    Vielen Dank
    Geändert von PicNick (27.06.2011 um 09:31 Uhr)

Ähnliche Themen

  1. Odometrie die 10.000
    Von NebuK im Forum Asuro
    Antworten: 5
    Letzter Beitrag: 10.11.2006, 14:02
  2. odometrie
    Von Toschtosch im Forum Asuro
    Antworten: 9
    Letzter Beitrag: 03.11.2006, 20:52
  3. Odometrie LED
    Von Rosowitsch im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 30.05.2006, 21:29
  4. Schrittfolgen in RN-Motor programmieren und über I2C abrufen
    Von Dr.U.Bianchi im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 3
    Letzter Beitrag: 08.06.2005, 15:09
  5. gefahren Schrittzahl abrufen in Delphi mit apdcomport
    Von robby05 im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 14
    Letzter Beitrag: 15.12.2004, 22:04

Stichworte

Berechtigungen

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