Hallo Leute ich habe ein Problem mit folgendem Ausdruck könnt ihr mir hier weiterhelfen ich bekomme einfach kein gültiges Ergebniss if (((!PINB&(1<<PINB0))&&(PINB&(1<<PINB1))&&(!PINB&(1<<PINB2))&(stellmin2== 0))
...)&(stellmin2==0))
Da gehört wohl ein "&&" hin.
Außerdem hast du da 9x "(" und nur 8x ")" stehen.
Nachtrag: So eine Frage gehört nicht nach "Projekte & Code" sondern nach "µC & Elektronik".
Hallo Leute ich habe ein Problem mit folgendem Ausdruck könnt ihr mir hier weiterhelfen ich bekomme einfach kein gültiges Ergebniss if (((!PINB&(1<<PINB0))&&(PINB&(1<<PINB1))&&(!PINB&(1<<PINB2))&&(stellmin2= =0)))
Uwe K. schrieb:1 | if (((!PINB&(1<<PINB0))&&(PINB&(1<<PINB1))&&(!PINB&(1<<PINB2))&&(stellmin2==0))) |
Hast du den geänderten Code denn wenigstens noch mal getestet? Beitrag "Problem mit Ausdruck"
> So eine Frage gehört nicht nach "Projekte & Code" sondern nach "µC & > Elektronik". Nein, die gehört in die Kategorie 'How to write unmaintainable code'. Nix für ungut.
g457 schrieb: > 'How to write unmaintainable code' Jepp, und hier zeigt sich, wie der Sch... mit (x << y) von der Problemstellung ablenkt. ein wenig besser:
1 | (((!PINB&BIT0)&&(PINB&BIT1)&&(!PINB&BIT2)&(stellmin2==0)) |
So springt der Fehler direkt ins Auge.
Magnus M. schrieb: > (!PINB&(1<<PINB0) Ich würde sagen: entweder muss der logische NOT-Operator ("!") vor die Klammer, oder Du musst durch "~" bitweise invertieren: (~PINB&(1<<PINB0)
Thomas E. schrieb: > Magnus M. schrieb: >> (!PINB&(1<<PINB0) > > Ich würde sagen: (...) oder Du musst Warum bitte zitierst Du MICH?
Magnus M. schrieb: > Warum bitte zitierst Du MICH? Sorry, ohne Absicht. Habe einfach nicht darauf geachtet, aus welchem Post ich den fehlerhaften Code zitiere...
Uwe K. schrieb: > ich bekomme einfach kein gültiges Ergebniss > > if > (((!PINB&(1<<PINB0))&&(PINB&(1<<PINB1))&&(!PINB&(1<<PINB2))&&(stellmin2= > =0))) Setze einfach ein "//" davor. Dann fisst das der Compiler. Oder hattest du an eine spezielle Funktionalität gedacht? Welche?
Hallo so ich habe den Code schon compeliert und der avr Studio 7 Simulator frisst den Code allerdings habe ich keinen Zugang zu der IF Schleife habe es mit (((!PINB&(1<<PINB0))&&(PINB&(1<<PINB1))&&(!PINB&(1<<PINB2))&&(stellmin2= =0))) oder mit (((!PINB&(1<<PINB0))&&(PINB&(1<<PINB1))&&(!PINB&(1<<PINB2))&(stellmin2== 0))) probiert ich habe an einer anderen Stelle die Invertierung auch in den Klammern stehen da funktioniert das ganze nur hier hab ich keine Ahnung warum er das nicht so ausführt wie ich mir das wünsche
Uwe K. schrieb: > IF Schleife Stell Dich in die Ecke und schäm Dich! > habe es mit ... > probiert ich habe an einer anderen Stelle die Invertierung auch in den > Klammern stehen da funktioniert das ganze nur hier hab ich keine Ahnung > warum er das nicht so ausführt wie ich mir das wünsche Versuch es doch mal mit Thomas Vorschlag: Thomas E. schrieb: > Ich würde sagen: entweder muss der logische NOT-Operator ("!") vor die > Klammer, oder Du musst durch "~" bitweise invertieren: (~PINB&(1<<PINB0)
Uwe K. schrieb: > probiert ich habe an einer anderen Stelle die Invertierung auch in den > Klammern stehen da funktioniert das ganze nur hier hab ich keine Ahnung > warum er das nicht so ausführt wie ich mir das wünsche Vielleicht solltest Du erstmal nicht probieren, sondern Dich mit der Funktion des "!" und des "~"-Operators vertraut machen! Logische (!) und bitweise (~) Invertierung ist nämlich nicht das Gleiche! Es kann aber sein, daß in bestimmten Spezialfällen zufällig das Richtige 'rauskommt, wenn man den falschen Operator anwendet. Edit: Das gleiche gilt auch für "&" und "&&" - nicht herumprobieren, sondern verstehen, worin der Unterschied liegt!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.