Forum: Mikrocontroller und Digitale Elektronik Switch anweißung


von Mangan (Gast)


Lesenswert?

Hallo,

folgendes Problem seit dem ich in meinem Code die switch anweißung 
drinnen habe macht der Mikrocontroller leider nicht mehr das was er 
soll. Vorher hatte ich alles mit If anweißungen realisiert funktionierte 
auch möchte aber die switch anweißung verwenden. Vieleicht sieht ihr wo 
ich einen Fehler gemacht habe.

Mikrocontroller ist der Atmega88. Achja im debug modus vom AVR Studio 
tritt kein Fehler auf!

von Axel R. (Gast)


Lesenswert?

Wenn man "Vorschau" drückt, ist der Anhang weg ;-)))

von Mangan (Gast)


Angehängte Dateien:

Lesenswert?

Ok :-)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Anhand des Codeschnipsels ist nichts auffälliges zu erkennen.

Wird "Taste1" irgendwo initialisiert? Wird der Wert auch irgendwann 
zurückgesetzt?

-

Übrigens wird "anweisen" mit einem weichen 's' gesprochen, also auch die 
davon abgeleitete "Anweisung".
Die Ligatur 'ß' ("sz") wird aber nur dort verwendet, wo ein scharfes 's' 
einem gedehnt gesprochenen Vokal folgt.

von Lars (Gast)


Lesenswert?

Hallo,

ich benutze immer Klammern in CASE Anweisungen.

case stunden:
  {
  .....
  }

von Johannes M. (johnny-m)


Lesenswert?

Lars wrote:
> Hallo,
>
> ich benutze immer Klammern in CASE Anweisungen.
Musst Du aber nicht. Kann vielleicht die Übersichtlichkeit erhöhen, ist 
aber programmtechnisch völlig wirkungslos.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Die Klammern sind nicht ganz wirkungslos; man könnte in ihnen Variablen 
deklarieren, die ihren Gültigkeitsbereich innerhalb des von den Klammern 
gebildeten Codeblocks haben.

Schön ist so ein Programmierstil aber nicht.

von Frederic H. (mangan)


Lesenswert?

Also die Taste 1 wird initialisiert mit 1. Zurückgesetzt wird sie auch.

@Lars
mit Klammern hatte ich schon versucht hat leider nicht geholfen!

Wie schon gesagt mache ich lauter If abfragen funktionierts! Deswegen 
weiß ich auch nicht mehr weiter.

von Thomas (Gast)


Lesenswert?

1. Bei default fehlt noch ein Break; sollte aber nichts ausmachen.
2. Sorry, aber Anweisung schreibt man mit normalen "s" - du willst die 
Anweisung ja schließlich nicht "Anbeißen" ;-)

Wie ist Taste1 denn definiert?

Bestens,

Thomas

von Gast (Gast)


Lesenswert?

> ich benutze immer Klammern in CASE Anweisungen.

> case stunden:
>   {
>   .....
>   }

Wer SO einrückt, MUSS Klammern in case-Blöcken verwenden...  :-))

von Frederic H. (mangan)


Lesenswert?

Vielen dank für die vielen Anweisungen werde es mir merken :-)

Taste1 ist wie folgt definiert:

unsigned int Taste1 = 1;

von Frederic H. (mangan)


Lesenswert?

Liegt es vieleicht daran das Taste1 als unsigned int deklariert ist und 
die anderen Variablen mit z.B #define stunden 1

von Doom (Gast)


Lesenswert?

Was genau tut er denn nicht?
Hast Du schonmal versucht, statt der Variablen direkt den entsprechenden 
Wert einzusetzena?

von Peter D. (peda)


Lesenswert?

Mangan wrote:

> Vorher hatte ich alles mit If anweißungen realisiert funktionierte
> auch möchte aber die switch anweißung verwenden. Vieleicht sieht ihr wo
> ich einen Fehler gemacht habe.

An dem Schnipselchen ist nichts auffälliges.
Der Fehler liegt also woanders.

Es kann leicht mal passieren, daß man etwas umschreibt und dann ist die 
logische Funktion eine völlig andere.


Peter

von Johannes M. (johnny-m)


Lesenswert?

Frederic H. wrote:
> Liegt es vieleicht daran das Taste1 als unsigned int deklariert ist und
> die anderen Variablen mit z.B #define stunden 1
Mit #define werden keine Variablen definiert! Das ist nur eine 
Textersetzung (auch "Makro" genannt) durch den Präprozessor! "stunden" 
ist für den Compiler eine reine Zahl (nämlich eine "1"), nichts weiter.

von Peter D. (peda)


Lesenswert?

Rufus t. Firefly wrote:

> Übrigens wird "anweisen" mit einem weichen 's' gesprochen, also auch die
> davon abgeleitete "Anweisung".
> Die Ligatur 'ß' ("sz") wird aber nur dort verwendet, wo ein scharfes 's'
> einem gedehnt gesprochenen Vokal folgt.


Und ich hatte mich schon gewundert, warum jemand seine Schalter weiß 
anmalen (anweißen) will :-)


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.