INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
2 LCDs und eins geht nur
07.06.2015, 21:27
Beitrag #9
RE: 2 LCDs und eins geht nur
Nabend zusammen

Nach langen tüffteln und forschen ,,, bin ich über den fehler den ich gemacht habe gefallen

while(1); <- hat das ganze skript blokiert

warum wieso und überhaupt werde ich im Kochbuch das ich mir schon mal als bettlektüre hingelegt habe rauswurschteln

schönen abend noch

Thomas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.06.2015, 10:12
Beitrag #10
RE: 2 LCDs und eins geht nur
Code:
var = 0;
while(var < 200){
  // do something repetitive 200 times
  var++;
}

Wenn die Variable var Wahr ist, also >199 dann wird die Schleife verlassen.

While(1) wird wahrscheinlich falsch compiliert.
[/code]
Ich dachte es ist ein einfacher Wartebefehl.Smile
In C muss man eben auf alles gefasst sein.
Hätte ich aber merken müssen, wenn ich auch mit dem Arduino noch nichts mache.


P.S.
Vielleicht kann sich einer melden der dies richtig erläutern kann.
Gruß

Nicht jeder Neuling in einem Forum hat keine Ahnung über die Materie!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.06.2015, 13:59 (Dieser Beitrag wurde zuletzt bearbeitet: 12.06.2015 14:09 von eftokay83.)
Beitrag #11
RE: 2 LCDs und eins geht nur
Mit while( <Bedingung> ){} kann man in C++ schleifen programmieren.
Solange die Bedingung true/wahr ist, wird die Schleife erneut ausgeführt ( also der ganze Code in den geschwungenen Klammern {} ).

Normalerweise macht man eine Bedingung dazu ( siehe Beitrag von fraju ).
In deinem Fall ist die Bedingung 1, was in C++ ( i.d.R ) für true/wahr steht.

Das sind also in deinem Code gleich zwei Fehler:

1) while ist kein Wartebefehl
2) dadurch dass du direkt hinter dem while das Semikolon hast, wird es von C++ so interpretiert dass kein weiterer Code ausgeführt werden soll - der auszuführende Schleifencode damit beendet ist.
Im Praxis Fall heißt das bei dir, dass der nächste Schleifendurchlauf ( mit Prüfung der Bedingung ) folgt. Da bei dir die Bedingung immer wahr ist, du aber keinen Notaustieg für die Schleife definiert hast, hast du dir eine klassische Endlosschleife programmiert Smile

Beispiele:

Code:
int i = 0;
while( i < 5 ) // solange wiederholen wie i kleiner 5 ist
{
   printf( "%d ", i ); // Ausgabe auf Konsole
   i++; // i hochzählen
}

Hier wird i für jeden Durchlauf ausgegeben und der Wert um 1 hochgezählt. Nach dem 5ten Durchlauf steht i auf 5, die Bedingung ist false/falsch und damit wird die Schleife nicht mehr ausgeführt. Die Schleife wird so benutzt wenn die Anzahl der Wiederholungen bekannt ist.

Ausgabe:
0 1 2 3 4


Code:
int i = 0;
while( 1 )
{
   printf( "%d ", i ); // Ausgabe auf Konsole
   i++; // i hochzählen
   if( i >= 4 )
      break;
}

Selbes Prinzip, nur dass im Kopf der Schleife die Bedingung immer true ist, und die Schleife damit ständig wieder durchlaufen wird.
Die Bedingung wird mit dem IF in der Schleife platziert. Sobald der Wert größer/gleich 4 ist, wird die Schleife verlassen.
Diese Version wird häufig verwendet wenn nicht bekannt ist, wie oft die Schleife durchlaufen werden soll - in so einem Fall unbedingt eine Ausstiegsbedingung mit einbauen

Ausgabe, exakt die selbe
0 1 2 3 4

Hoffe es war so verständlich.
Viele Grüße
Flo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Lightbulb Wie geht das? :) Mischa 4 910 02.06.2016 10:38
Letzter Beitrag: SkobyMobil
  Analoges Signal Eins-zu-Eins übertragen Stadtbilderklaerer 5 2.844 02.03.2014 18:41
Letzter Beitrag: Stadtbilderklaerer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste