Hallo,
ich möchte ein Softwaremäßiges blinken realisieren. Die Blinkreihenfolge
ist relativ komlex.
Bisher habe ich einen Zähler jeden Zyklus einen um 1 hochzählen lassen
und dann geschrieben.
1
if(pwm_Counter>=100)
2
{
3
If(pwm_Counter<200)
4
{
5
"LED an"
6
}
7
Else
8
{
9
"LED aus"
10
}
besser wäre ja:
if (pwm_Counter zwischen 100 und 200)
{
LED an
}
Danke schonmal für eure Hilfe.
Lg finnp
Finn schrieb:> if (pwm_Counter >=100)> {> If (pwm_Counter < 200)> {> "LED an"> }> Else> {> "LED aus"> }
Preisfrage: Zu welchem if gehört das else?
> if (pwm_Counter zwischen 100 und 200)
wird auf 2 Bedingungen aufgeteilt, die UND-verknüpft werden:
if(pwm_Counter >= 100 && pwm_Counter < 200)
...
:-)
Peter Dannegger schrieb:> switch( pwm_Counter ){> case 100 ... 199:> // "LED an"> break;> default:> // "LED aus"> }>>> Peter
Wofür steht das Break und Default?
Ich weis das ich oben eine } vergessen habe.
Sorry
Finn schrieb:> Wofür steht das Break und Default?
Lies in Deinem C-Buch nach, was switch/case tun.
Hast Du keins?
Brian Kernighan & Dennis Ritchie, "Programmieren in C", 2. Auflage,
Hanser-Verlag.
Wobei Peter gemein war, was er da geschrieben hat, ist eine
gcc-Spezialität. Eine Bereichsangabe bei case kennen andere Compiler
nicht.
>Wobei Peter gemein war, was er da geschrieben hat, ist eine>gcc-Spezialität. Eine Bereichsangabe bei case kennen andere Compiler>nicht.
Da hier in letzter Zeit öfter Hinweise auf Syntax-Varianten kommen, die
eigentlich gcc-Sonderfälle und nicht C-Standard sind, möchte ich Peter
und auch andere höflich bitten darauf hinzuweisen. Man könnte so eine
unnötige Diskussion oder Nachfrage vermeiden.
Huch schrieb:> Da hier in letzter Zeit öfter Hinweise auf Syntax-Varianten kommen, die> eigentlich gcc-Sonderfälle und nicht C-Standard sind, möchte ich Peter> und auch andere höflich bitten darauf hinzuweisen. Man könnte so eine> unnötige Diskussion oder Nachfrage vermeiden.
warum sollte man in einem GCC-Forum darauf hinweisen, dass der Code für
GCC ist?
Justus Skorps schrieb:> warum sollte man in einem GCC-Forum darauf hinweisen, dass der Code für> GCC ist?
eher anders herum, man sollte darauf Hinweisen das der Code nur für denn
gcc ist, sonst schlägt die Frage in einen anderen Bereich des Forum
wieder auf in Form warum geht es nicht mit Compiler X.
Justus Skorps schrieb:> warum sollte man in einem GCC-Forum darauf hinweisen, dass der Code für> GCC ist?
Zwar bezieht sich dieses Forum auf GCC, aber auf GCC als C- (oder C++-)
Compiler und nicht als Compiler für proprietäre nichtportable
Sprachkonstrukte.
Solange das von Peter verwendete /case/-Statement nicht in einem
C1x-Standard auftaucht, ist das deutlich als nichtportabel zu
kennzeichnen.
Nun, obwohl es "formal" vielleicht sein mag, das man in einem GCC
übertiteltem Forum, auch Code bzw. Beispiele erwarten kann, die
ausschliesslich mit gcc funktionieren, meine ich, das es für alle Leser
hilfreich sein wird, auf solche Fälle gesondert hinzuweisen.
Nicht weil man demjenigen, der solche Beispiele bringt irgendeinen
Vorwurf machen könnte, sondern weil es einfach nur unterstützend wirkt,
was ja irgendwie auch der Zweck des Forums ist. Wer solche Beispiele
bringt ist auch sicherlich nicht "verpflichtet" einen Hinweis zu
bringen, aber es würde der grundlegenden Absicht des Forums
entgegenkommen zu helfen und zu unterstützen.
Mir selbst ist es auch schon so gegangen, dass ich bei einigen Fällen
gestutzt habe, im K&R nachgelesen und dann erst durch Recherche
festgestellt habe, das etwas eine gcc-Spezialität ist. Dabei halte ich
mich für C-erfahren und einigermaßen sattelfest. So hätte mir ein
kleiner Hinweis einige Mühe erspart. (Ich hätte vielleicht gleich in der
gcc Dokumentation nachgeschaut).
Es geht mir also bei meiner Bitte um den Hinweis auf den gcc-Spezialfall
wirklich nur um Unterstützung nicht darum ob man im Recht ist diesen
wegzulassen oder nicht. Ich meine das alle Leser davon profitieren
könnten.
Justus Skorps schrieb:> warum sollte man in einem GCC-Forum darauf hinweisen, dass der Code für> GCC ist?
Weil der Name für dieses Subforum etwas unglücklich gewählt ist. Wenn
man sich die Themen hier ansieht, dann ist klar dass es eben nicht nur
um die GNU Compiler Collection geht.
Ich denke mal, da bricht keinem ein Zacken aus der Krone, wenn er
einfach mal nachfragt, wenn ein Tip nicht funktioniert.
Daher halte ich es für müßig, nen Haufen Vermutungen anzustellen, wie
jemand richtig antworten sollte.
Ich finde allerdings die Case-Bereiche für sinnvoll. Sie machen den Code
deutlich besser lesbar gegenüber if-else-Monsterbäumen.
Und sogar Bascom kann das.
Ich habe auch vom Assemblerlisting her den Eindruck, der GCC kann den
Code dann deutlich besser optimieren.
Man hat damit sogar einen Sinnfälligkeitscheck, d.h. die Case dürfen
sich nicht überlappen.
Ich hatte z.B. mal ne if-else-Kolonne, die unsinnig war, weil ein
Vergleich die falsche Richtung hatte. Ich habs nur daran gemerkt, daß
der Code unerwartet kleiner wurde.
Peter