- LiFePO4 Speicher Test         
Ergebnis 11 bis 20 von 25

Thema: Asuro steigt nicht aus while schleife aus

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    19.06.2011
    Beiträge
    17
    Also ich habe jetzt das Programm mal so umgeschrieben als wüsste er es nicht mehr, wie findest du das Programm so?

    PHP-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// Integervariable zur freien Verwendung

        
    Init();
        
    FrontLED(ON); // Linienbeleuchtung einschalten
        
    Sleep(255); // warten bis LED volle Helligkeit erreicht hat
        
    LineData(ldata); // ADC anwärmen
        
    while(1)
        {
            
    MotorSpeed(200,200); // und losfahren

            
    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(100); // Regelung etwas dämpfen
            
    }
            
    MotorSpeed(0,0); // anhalten weil Hinderniss erkannt wurde
            
    Msleep(500);

            
    OdometrieData(odata); // Becherfarbe ermitteln
            
    if (odata[0] > 950)
            {
                for (
    i=0i<20i++) // Becher aufnehmen (Servoimpuls 20x senden)
                
    {
                    
    BackLED(OFF,ON);
                    
    Msleep(1); // Impulslänge 1ms
                    
    BackLED(OFF,OFF);
                    
    Msleep(19); // Impulspause 19
                
    }
                
    MotorSpeed(0,200); // hell bedeutet nach links abbiegen
                
    StatusLED(YELLOW);
            }
            else
            {
                for (
    i=0i<20i++) // Becher aufnehmen (Servoimpuls 20x senden)
                
    {
                    
    BackLED(OFF,ON);
                    
    Msleep(1); // Impulslänge 1ms
                    
    BackLED(OFF,OFF);
                    
    Msleep(19); // Impulspause 19ms
                
    }
                
    MotorSpeed(200,0); // dunkel bedeutet nach rechts abbiegen
                
    StatusLED(RED);
            }

            
    Msleep(1000); // eine Sekunde drehen
            
    StatusLED(GREEN); //fertig
            
    MotorSpeed(200,200); // weiterfahren (und hoffen, dass die Linie noch da ist ;)
            
            
    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(100);
            }

            
    MotorSpeed(0,0); // nochmals anhalten
            
    Msleep(500);

            for (
    i=0i<20i++) // und Becher wieder ablegen
            
    {
                
    BackLED(OFF,ON);
                
    Msleep(2); // Impulslänge 2ms
                
    BackLED(OFF,OFF);
                
    Msleep(18); // Prima!
            
    }
            
            
    OdometrieData(odata); // Becherfarbe ermitteln
            
    if (odata[0] > 950)
            {
                
    MotorSpeed(0,200); // hell bedeutet nach links abbiegen
                
    StatusLED(YELLOW);
            }
            else
            {
                
    MotorSpeed(200,0); // dunkel bedeutet nach rechts abbiegen
                
    StatusLED(RED);
            }
            
    Msleep(1000); // eine Sekunde drehen
            
    StatusLED(GREEN); //fertig
            
    MotorSpeed(200,200); 
        }
        return(
    0);

    Geändert von radbruch (19.06.2011 um 20:59 Uhr) Grund: Code-Tags eingefügt

Ähnliche Themen

  1. FOR-Schleife von -1 bis +1 nicht möglich?
    Von V:X im Forum Robby RP6
    Antworten: 3
    Letzter Beitrag: 29.12.2010, 16:16
  2. Helligkeit des Dimmers steigt nicht linear an
    Von 8undzwanzigs im Forum PIC Controller
    Antworten: 28
    Letzter Beitrag: 14.11.2010, 14:18
  3. While Schleife funktioniert nicht!
    Von Wiederstand im Forum Software, Algorithmen und KI
    Antworten: 6
    Letzter Beitrag: 18.08.2010, 18:37
  4. Antworten: 1
    Letzter Beitrag: 09.03.2009, 14:19
  5. While-Schleife geht nicht!!!
    Von Undergroundi im Forum Asuro
    Antworten: 14
    Letzter Beitrag: 22.12.2007, 20:34

Stichworte

Berechtigungen

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

Solar Speicher und Akkus Tests