-
        

Ergebnis 1 bis 9 von 9

Thema: Programmierhilfe

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    06.02.2007
    Beiträge
    39

    Programmierhilfe

    Anzeige

    Ich habe mir vor kurzem einen Asuro gekauft. Nun würde ich sehr gerne wissen, wie man Programme dafür schreibt (z.B dass er eine bestimmte strecke vorwärts fährt, dann dreht und wieder zurückfährt). Ich würde mich sehr freuen, wenn ihr gleich ein passendes Beispielprogramm hier reinschreibt.

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.11.2006
    Ort
    Hamburg
    Alter
    25
    Beiträge
    384
    Der wohl am meist gesagte satz in diesem Forum ist wohl: copy+paste bringt nix. Da is wohl auch was dran ich würd mir einfach mal die Anleitung durchlesen und wenn du dann fragen hast was wohl unausweichlich ist wenn man vorher keinerlei erfahrung mit C hatte kannste immer noch Fragen.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    06.02.2007
    Beiträge
    39
    ich wüsste gerne, warum das programm nicht funktioniert:
    Code:
    #include "asuro.h"
    int main(void){
    Init();
    if (PollSwitch()>0){goto stop;}
    else {goto ok;}
    int stop(void){
    SerWrite("Hindernis!\n",10);
    MotorDir(FREE,FREE);
    MotorSpeed(0,0);
    goto ende;
    return 0;
    }
    int ok(void){
    SerWrite("Kein Hindernis!\n",15);
    MotorDir(FWD,FWD);
    MotorSpeed(200,200);
    goto main;
    return 0;
    }
    int ende(void){
    MotorDir(FREE,FREE);
    MotorSpeed(0,0);
    return 0;
    }
    }

  4. #4
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    was ist goto? das benötigst du nicht.
    du meinst wahrscheinlich ende.
    goto main brauchst du gar nicht - wenn unterfunktionen abgeschlossen sind, wird an der entsprechenden stelle in der main funktion weiter gemacht.

    wenn du eine funktion definieren willst, dann muss das AUSSERHALB und VOR der main funktion passieren. folgerndermassen:
    Code:
    int funktion1(void)
    {
    ...
    }
    int funktion2(void)
    {
    ...
    }
    int main(void)
    {
    ...
    ...
    funktion1();
    ...
    ...
    funktion2();
    ...
    }
    kleinschreibung ist cool!

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    06.02.2007
    Beiträge
    39
    gibt es keinen befehl, mit dem ich von einem programmteil in ein anderes programmteil komme? ich dachte, dass geht mit "goto".

  6. #6
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    also goto gibt es schon - allerdings normalerweise in basic. benutze lieber funktionen, das ist eleganter, einfacher und übersichtlicher.
    kleinschreibung ist cool!

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    06.02.2007
    Beiträge
    39
    und wie würde das dann in meinem programm aussehen?

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    07.01.2007
    Beiträge
    13
    Hi

    das sind jetzt nur prototypen die noch verbesserungsfähig sind.
    man könnte ihn zum beispiel nach einer zeit ausschalten oder ihn gerade fahren lassen. das überschreitet alerdings mein können da ich noch ein anfänger bin.

    Code:
    #include "asuro.h"
    int stop(void)
    {
    	SerWrite("Hindernis!\n",10);
    	MotorDir(FREE,FREE);
    	MotorSpeed(0,0);
    	return 0;
    }
    int go(void)
    {
    	SerWrite("Kein Hindernis!\n",15);
    	MotorDir(FWD,FWD);
    	MotorSpeed(200,200);
    	return 0;
    }
    int main(void)
    {
    	Init();
    	while(1)
    	{
    		if(PollSwitch()>0)
    		{
    			stop();
    		}
    		else 
    		{
    			go();
    		}
    	}
    	while(1);
    	return 0;
    }
    Code:
    #include "asuro.h"
    int main(void)
    {
    	Init();
    	while(1)
    	{
    		if(PollSwitch()>0)
    		{
    			SerWrite("Hindernis!\n",10);
    			MotorDir(FREE,FREE);
    			MotorSpeed(0,0);
    		}
    		else 
    		{
    			SerWrite("Kein Hindernis!\n",15);
    			MotorDir(FWD,FWD);
    			MotorSpeed(200,200);	
    		}
    	}
    	while(1);
    	return 0;
    }
    Sulo

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    06.02.2007
    Beiträge
    39
    jetzt funktionierts so wie ich es wollte. vielen dank für deine hilfe!

Berechtigungen

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