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 | |
Hast du den geänderten Code denn wenigstens noch mal getestet? Beitrag "Problem mit Ausdruck"
...auf welchem Drucker? Klaus.
Gast
#4547878
> 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.
Gast
#4547885
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 | |
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...
Gast
#4547942
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!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.