www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu Programmierlogik


Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich habe hier ein Logikproblem. Ich gebe zu...ich bin nicht gerade der 
Cheflogiker...

Ich habe folgende Funktion:

bit ReadASC_Flag(void)
{
  return ASC_Flag;
}


welche mir das ASC_Flag zurückgibt....und diese Funktion:

while(!ReadASC_Flag());
sprintf(cBuffer,"Text: %3.3f",fGetText());
DozPrintZ(3, cBuffer);


Whenn ich nun debugge, sehe ich, daß wenn ASC_Flag=0 ist, daß die 
Bedingung nicht erfüllt ist, und somit das sprintf nicht ausgefürht 
wird.

Irgendwie verstehe ich das nicht. Wenn ASC_Flag=0 ist, müßte die 
Bedinung doch erfüllt sein, weil das "!" den Ausdruck doch negiert !?

Irgendwie check ich das gar nicht und wäre sehr dankbar wenn es mir 
jemand erklären könnte.

DANKE

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entferne das Semikolon nach der while-bedingung!
Lies ein C-Buch.

Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Herzlichen Dank für deine Antwort...Ja das sollten wir tun...dann hauen 
wir halt gleich alle Foren zu wenn so eine Frage hier nicht mehr erlaubt 
ist.

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Kaltenegger schrieb:
> wenn so eine Frage hier nicht mehr erlaubt
> ist.

Wer sagt das so eine Frage nicht erlaubt ist?

Aber in Deinem Fall machen wir mal eine Ausnahme: Fragen auf deren 
Antwort Du mit ein bisschen Grips und lesen eines C-Buches kommen 
könntest, sind Dir persönlich, Andreas Kaltenegger, in diesem Forum 
künftig verboten.

Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer bist du denn, daß du hier Verbote erteilen könntest...HAHA

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Kaltenegger schrieb:
> Wer bist du denn, daß du hier Verbote erteilen könntest

Sag' mal, liest Du eigentlich selbst was Du schreibst?

> wenn so eine Frage hier nicht mehr erlaubt
> ist.

Niemand hat Dir solche Fragen verboten.

Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du eigentlich am Karsamstag nichts besseres zu tun als auf Fragen 
anderer nutzlose Kommentare zu spammen ?

Wenn du es weist aber es nicht sagen möchtest (Fräulein...der Andreas 
hat meine Sandburg angepinkelt) dann gib einfach mal Ruhe und freue dich 
doch über deine unendliche Weisheit :)

Ich spam ja andere Beiträge auch nicht zu!

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Kaltenegger schrieb:
> Wenn du es weist aber es nicht sagen möchtest

Was an: "Entferne das Semikolon nach der while-bedingung! Lies ein 
C-Buch." hast Du denn nun nicht verstanden?

Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
IGNORE

Autor: fa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er hat deine frage doch beantwortet...

Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht nicht um das Semikolon fa. Ich weis daß das da nicht hingehört, 
kann es aber als Gast nicht mehr ändern. Es ging um die verkürzte Logik 
innherhalb der Bedingung.

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Kaltenegger schrieb:
> Ich weis daß das da nicht hingehört,
> kann es aber als Gast nicht mehr ändern.

Du sollst das Semikolon aus DEINEM QUELLTEXT entfernen, nicht aus Deinem 
Beitrag.

Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da haben wir aber gelacht :)



Wenn du wirklich so viel Ahnung hättest wie du hier vortäschst und die 
Frage gelesen hättest wäre dir hier was aufgefallen

"Irgendwie verstehe ich das nicht. Wenn ASC_Flag=0 ist, müßte die
Bedinung doch erfüllt sein, weil das "!" den Ausdruck doch negiert !?"

Kannst dir zukunftige Antworten sparen. Ist ja echt schade um den 
Speicherplatz.

Autor: Frank Lorenzen (florenzen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Obacht! Vielleicht soll while ja seine einsamen Runden drehen solange 
ReadASC_Flag() mit 0 zurückkommt.

Gruß
f

Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Frank,

danke für die Antwort. while(1==1); wäre somit eine Endlosschleife. Das 
läßt den Code gleich in einem ganz anderen Licht erscheinen :)

Es ging zwar um die Bedinung while(!Ausdruck) was aber anscheinend 
nichts anderes bedeutet als while (Ausdruck!=0).

Autor: Frank Lorenzen (florenzen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Kaltenegger schrieb:

[...]
> "Irgendwie verstehe ich das nicht. Wenn ASC_Flag=0 ist, müßte die
> Bedinung doch erfüllt sein, weil das "!" den Ausdruck doch negiert !?"
[...]

Ist sie ja auch. Solange ASC_Flag==0 dreht die while-Schleife Däumchen. 
Wenn ASC_Flag != 0 wird die SChleife verlassen und der nachfolgende 
Code, der sich außerhalb der Schleife befindet, ausgeführt.


Gruß
f

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank Lorenzen schrieb:
> Obacht! Vielleicht soll while ja seine einsamen Runden drehen solange
> ReadASC_Flag() mit 0 zurückkommt.

Das werden wir wohl nie erfahren, weil der OP ja krampfhaft bemüht ist, 
von einem Fettnäpfchen ins nächste zu treten.

Wenn man was falsch kopiert hat, könnte man es einfach nochmal richtig 
posten.
Wenn darauf hin jemand geantwortet hat, besteht keinerlei Grund, ihn zur 
Schnecke zu machen.
Generell macht man keinen zur Sau, wenn eine Antwort nicht zutrifft.


Wobei ich mich frage, wie man etwas falsch kopieren kann.
Schließlich weiß ja jedes Kind, daß man Quelltextfragen nie aus dem Kopf 
nachschreibt, sondern immer per copy&paste einfügt.


Peter

Autor: Frank Lorenzen (florenzen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Kaltenegger schrieb:
> Hi Frank,
>
> danke für die Antwort. while(1==1); wäre somit eine Endlosschleife. Das
> läßt den Code gleich in einem ganz anderen Licht erscheinen :)

So ist es. Es ist eine Endlosschleife mit leerem Rumpf.

> Es ging zwar um die Bedinung while(!Ausdruck) was aber anscheinend
> nichts anderes bedeutet als while (Ausdruck!=0).

(!Ausdruck) bedeutet (Ausdruck == 0)


Gruß
f

Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie du vielleicht eben bemerkt hast war nichts falsch kopiert :)

Der Code steht genau so da !

Wer aber dann "Grips" für sich beansprucht und Weise Ratschläge erteilt 
wie grrr ohne das was Frank sagt selbst verstanden zu haben sollte halt 
einfach nicht antowrten.

Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Hinweis Frank.

Gott sei Dank daß es noch Leute gibt, die ohne erhobenem Zeigefinger 
weiterhelfen und schon mal C-Bücher gelesen haben in denen das mit dem 
Strichpunkt steht :)

Danke Dir !

Autor: Grrrr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Kaltenegger schrieb:
> schon mal C-Bücher gelesen haben in denen das mit dem
> Strichpunkt steht :)

Ja. Und jeder Zusammenhang mit meiner ersten Antwort

Grrrr schrieb:
> Entferne das Semikolon nach der while-bedingung!
> Lies ein C-Buch.

ist rein zufällig. Schon klar.

Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schlaf schön :)

Autor: Rene K. (draconix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Kaltenegger schrieb:
> Strichpunkt steht :)

Nicht im C Buch aber dafür im Duden: Ausrufezeichen :P :D

> Aus|ru|fe|zei|chen, das: Satzzeichen, das nach Ausrufe-, Wunsch- u.
> Aufforderungssätzen sowie nach Ausrufewörtern steht.

Auch wenn manche hier im Forum denken sie wären Götter mit Kitteln, 
rechtfertigt das noch lange nicht deinen Aggressiven Umgangston Andreas. 
Du hättest Grrrr doch auf den von dir, nunja, doch eher untypisches 
Schleifenverhalten hinweisen können. Da muß man nicht gleich mit einem 
Paket Feindseligkeit losstürmen.

Denn so wie man in den Wald hineinruft, ruft es immer wieder her raus!

Autor: Andreas Kaltenegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rene,

daß das mit dem Strichpunkt so geht wie es geht wurde mir erst durch den 
Hinweis von Frank klar !!!

Eigentlich ging es mir von Anfang an um den Ausdruck while(!Bedingung) 
auf was Herr grrr aber niemals einging, um seine Dampfblasen ablassen zu 
können.

Bei sowas werd ich stocksauer. Man schaue sich einfach mal seinen 
zweiten Kommentar an. Wenn sich nun auch noch herausstellt (ich 
zumindest lerne noch gerne etwas dazu) daß das durchaus Sinn macht, 
kommt dieser Kommentar echt witzig daher :)

Autor: SCNR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> daß das mit dem Strichpunkt so geht wie es geht wurde mir erst durch den
> Hinweis von Frank klar !!!

Ich sach jetzt nich "Hätteste mal ein C-Buch gelesen, weil da steht das 
im ersten Kapitel 'Syntax' drin".

SCNR

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.