- 3D-Druck Einstieg und Tipps         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 24 von 24

Thema: C-Anfänger braucht Hilfe

  1. #21
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    01.11.2006
    Beiträge
    433
    Anzeige

    LiFePo4 Akku selber bauen - Video
    in der anleitung steht ja schon alles was man für den anfang mit c braucht drinn. des weiteren solltest du vieleicht mal ein gutes Buch über c durchwälzen. ich empfehle C von A bis Z, das gibts sogar als openbook im internet
    http://www.galileocomputing.de/openbook/c_von_a_bis_z/

    mfg EDH

  2. #22
    Neuer Benutzer Öfters hier
    Registriert seit
    12.11.2006
    Beiträge
    11
    Wieso ist es nicht möglich && als Operater zu nehmen??

    Code:
        #include "asuro.h"
    
       
    int main (void)
    {
    unsigned int data[2],mittelwert[5],mittelmittel;
    unsigned char hell_links,dunkel_links,hell_rechts,dunkel_rechts,fahr_rechts,fahr_links,stop,los;
    Init();
    	
    while(1)
    {MotorDir (RWD,RWD);
    fahr_rechts=0; fahr_links=0; los=0; stop=0;
    LineData(data);
    mittelwert[0]=(data[0]+data[1])/2;
    LineData(data);
    mittelwert[1]=(data[0]+data[1])/2;
    LineData(data);
    mittelwert[2]=(data[0]+data[1])/2;
    LineData(data);
    mittelwert[3]=(data[0]+data[1])/2;
    LineData(data);
    mittelwert[4]=(data[0]+data[1])/2;
    
    mittelmittel=(mittelwert[0]+mittelwert[1]+mittelwert[2]+mittelwert[3]+mittelwert[4])/4;
    	
    	if(data[0]>mittelmittel)
    		{hell_links=1;dunkel_links=0;}
    	if(data[0]<mittelmittel)
    		{hell_links=0;dunkel_links=1;}
    	if(data[1]>mittelmittel)
    		{hell_rechts=1;dunkel_rechts=0;}
    	if(data[1]<mittelmittel)
    		{hell_rechts=0;dunkel_rechts=1;}
    	
    	if(hell_links=1 && dunkel_rechts=0)
    		{fahr_rechts=1;}
    	if(hell_rechts=1 && dunkel_links=0)
    		{fahr_links=1;}
    	if(hell_rechts=1 && hell_links=1)
    		{los=1;}
    	if(dunkel_rechts=0 && dunkel_links=0)
    		{stop=1;}
    	while(fahr_rechts==1)
    		{MotorSpeed(80,200);}
    	while(fahr_links==1)
    		{MotorSpeed(200,80);}
    	while(los==1)
    		{MotorSpeed(200,200);}
    	while(stop==1)
    		{MotorSpeed(0,0);}
    }
    }
    Das is jetz das Scheu-vor-Licht Prog, ein bischen einfacher, aber er will && nicht als Operator.
    Zuerst hatte ich es in der while schleife, da wollte er es nicht kompilieren und jetz so in der if, ich weiss nicht mehr weiter. -.-

    edit:
    gehört statt den && ein ,?
    *mal probier*
    edit2: so gehts
    aber der asuro tut nicht das was ich wollte xD

  3. #23
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    49
    Beiträge
    1.146
    Der &&-Operator ist schon richtig, Dein Fehler liegt beim =
    Ein einfaches = ist eine Zuweisung.
    Wenn Du in einer If-Abfrage vergleichen möchtest, musst Du == nehmen.

    Also
    Code:
    if(dunkel_rechts==0 && dunkel_links==0) 
          {stop=1;}
    askazo

  4. #24
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    Manchmal musst du beide bedingungen in "unter"klammern setzen:

    Code:
     if ((Bedingung1)&&(Bedingung2))
    zum thema arrays: wenn du eine variable deklarierst, z.b. werte[2], dann gibt es das array "werte" mit 2 elementen. die elemente heissen werte[0] und werte[1] (NICHT werte[1] und werte[2]!!)

    zwischen den eckicgen klammern steht ein ausdruck, der ausgerechnet die aktuelle stelle im array zeigt. beispiel:

    Code:
    werte[1]  // Das zweite element
    werte[0]  // Das erste Element
    werte[99-98]  // Das (99-98 = 1), also zweite Element
    
    i=12;
    werte[i/2-6]  // Das (12/2-6 = 0), also erste element
    
    werte[i]  // Das i-te Element (Produziert einen Fehler wenn das Array nicht lang genug ist)

    du kannst also zwischen die eckigen klammern schreiben was du willst.

    sowas z.b. geht:

    Code:
    int i[50];
    
    //Hier werden irgendwelche Werte in die Variablen des arrays geschreiben...
    
    for(i=0;i<50,i++)
     {
     PrintInt(werte[i]); // Funktion aus der neuen lib, um integerwerte auszugeben ohne sie vorher umwandel zu müssen)
     SerWrite("\n\r",2);
     }
    Dieser code würde nacheinander Die Werte von 0 bis 49 (also alle 50 werte des arrays), gefolgt von jeweios einem zeilenumbruch ausgeben.

    Anmerkung: \n sowie \r werden zwar mit je zwei zeichen getippt, zählen jedoch bei der Übertragung als 1 byte.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress