- LiFePO4 Speicher Test         
Ergebnis 1 bis 5 von 5

Thema: Programmierfehler ode was?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    30.03.2006
    Alter
    36
    Beiträge
    15

    Programmierfehler ode was?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    hallo alle miteinander

    Ich habe ein Programm geschrieben, welches auf einem weißen tisch fahren soll und wenn es an die kante kommt dann soll er drehen(auf ne bestimmte weiss, ist aber irrelevant für mein problem) und weiterfahren.

    Mein quellcode ist folgender:
    Code:
    #include "asuro.h"
    #include "Zusammenfassung.h"
    
    int main()
    {
    	Init();
    	int i;
    
    	BackLED(OFF,OFF);
    	StatusLED(RED);
    	for (i=288 ; i>0 ; i--)	{Sleep(250);}
    	StatusLED(GREEN);
    	for (i=288 ; i>0 ; i--)	{Sleep(250);}
    	StatusLED(OFF);
    	
    
    	int tischprogramm();
    return 0;
    }


    Die LEDs hab ich eingefüht um zu sehen ob er überhaupt anfaängt. er kommt bis zu dem befehl " StatusLED(OFF); und dann hört er auf (!!!), das ist mir ein rätsel !
    ich geb noch die funtkion "tischprogramm()" an :
    Code:
    #include "asuro.h"
    #include "Zusammenfassung.h"
    
    
    
    int tischprogramm()
    {
    Init();
    
    
    	unsigned int data[2];
    
    
    	FrontLED(ON);
    	MotorDir(FWD,FWD);
    	MotorSpeed(150,150);
    
    
    	while(1)
    	{
    		LineData(data);
    
    		if (data[0] || data[1] < 600) {rand();}
    
    		MotorDir(FWD,FWD);
    		MotorSpeed(150,150);
    	}
    
    
    return 0;
    }
    Ich hab es extra so gemacht dass er erst losfährt und dann in ne schleife kommt damit ich seh woran es hängt aber er fährt nicht einmal los
    bitte, bitte, bitte helft mir !
    ich weiss einfach nicht wo mein fehler liegt weil beim compilieren meldet er keine fehler mehr. wahrscheinlich mach ich ein dummen anfängerfehler aber bitte helft mir.
    Es wäre echt nett wenn ich ne schnelle antwort kriegen würde weil ich morgen ein wettbewerb in der schule bestreite und es soll nicht an sowas scheitern bitte...

    MfG kungfuman

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    02.06.2005
    Beiträge
    44
    Ich tippe mal auf folgendes in deiner main Methode :

    int tischprogramm();

    Das int muss weg, du willst doch hier die Methode selber aufrufen.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    30.03.2006
    Alter
    36
    Beiträge
    15
    danke radian =D>

    er fährt jetzt wenigstens
    kennst du dich auhc mit der LineData aus ? also ob ich es prinzipiell richtig geschrieben habe ? weil bei mir reagiert er nicht auf das dunkel werden.
    und ich hab noch ne frage: um die LineData-werte zu bekommen, muss da die FrontLED an sein ?
    bin noch ein anfänger deswegen sind die fragen auch so blöd
    es kann aber auch sein dass der wert 600 zu niedrig ist.... wäre nett wenn ich ne antwort kriegen würde ,danke

    MfG kungfuman

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    02.06.2005
    Beiträge
    44
    Das Problem wird hier ran liegen :

    if (data[0] || data[1] < 600) {rand();}

    Ich schätze mal du willst hier testen ob data[o] ODER data[1] kleiner als 600 ist, right?

    Dann musst du das aber so schreiben : if( data[0]< 600 || data[1] < 600)

    Ansonsten hießt das soviel wie if( TRUE || data[1]<600) und er läuft sofort in rand().
    Außer data[0] liefert direkt 0, dann wäre das ein false.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    30.03.2006
    Alter
    36
    Beiträge
    15
    danke danke danke !!!!

    ich werde es sofort verbessern ich freu mich dass du mir geholfen hast

    ist echt nett von dir !

    danke nochmal

    MfG kungfuman

Berechtigungen

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

Solar Speicher und Akkus Tests