Hallo, ich häng grad total an meinem Programm. hier geht´s darum die Sensorwerte von 5 Sensoren - hängen an folgendem PIC 18F2550, an den PINs 2, 3, 4, 5 & 7. Werte einlesen geht ja mittlerweile schon - diese über RS232 auf LCD ausgeben - auch kein Problem...ABER nun kommt´s: Am Display soll folgendes stehen: Sensor "NR" "Wert" Pa (zweizeilig - da auch zweizeiliges Display) "Sensor"; "Wert" u. "Pa" wird schon brav angezeigt - nur die "fortlaufende" Nummer, welche neben "Sensor" hingehört will einfach nicht richtig raus - entweder kommen da so zahlen wie 0, 2, 4, 8, 1 oder einfach nur "0"... wer kann mir denn bitte kurz weiterhelfen? hab schon ´nen mächtigen Knoten im Gehirn... :-(
Kathleen Z. schrieb: > entweder kommen da so zahlen wie 0, 2, 4, 8, 1 oder > einfach nur "0"... Dir ist schon klar, dass du keine Zahlen schicken kannst, sondern Zeichen ?
Weiterhelfen? Knoten im Hirn werden durch Rauchen entknotet (das richtige Zeug aber), Alkohol oder Frauen sind auch hilfreich. Wie war die konkrete Frage nochmal?
sry - hab´s vergessen - aber mittlerweile hat es sich bisschen gebessert - mittlerweile zählt er so: 0, 1, 2, 3, 4, 8 -> wie schaff ich nun diesen "8"er wegzu"programmieren"? hier ein ausschnitt des codes:
1 | ...
|
2 | if (act_sensor_number<=3) |
3 | act_sensor_number++; |
4 | else { |
5 | if (act_sensor_number==4) |
6 | act_sensor_number=8; |
7 | else
|
8 | act_sensor_number=0; |
9 | }
|
spontan schrieb: > Alkohol oder Frauen sind auch hilfreich ?!?!? 1. sitz ich in der firma - da gibt´s keinen alkohol u. 2. ich bin ´ne frau...da kann mir eine weitere frau auch nicht weiterhelfen... :-P
Naja du setzt ja deine act_sensor_number auf 8 falls act_sensor_number==4.
Stefan schrieb: > Naja du setzt ja deine act_sensor_number auf 8 falls > act_sensor_number==4. ah jo...hoppla...VIELEN DANK! - jetz is der Knoten auch weg...
Kathleen Z. schrieb: > -> wie schaff ich nun diesen "8"er wegzu"programmieren"? Einfach: Kathleen Z. schrieb: > if (act_sensor_number<=3) > act_sensor_number++; > else { > if (act_sensor_number==4) > act_sensor_number=8; > else > act_sensor_number=0; > } Ersetzen durch:
1 | if (act_sensor_number<=3) { |
2 | act_sensor_number++; |
3 | } else { |
4 | act_sensor_number=0; |
5 | }
|
Kathleen Z. schrieb: > -> wie schaff ich nun diesen "8"er wegzu"programmieren"? Lösch doch einfach die Zeilen if (act_sensor_number==4) act_sensor_number=8; else
Gugu Kathleen,
etwas mehr Code wäre schick, damit man auch weiß wie die Variablen
definiert sind und so weiter...
Anstatt mit IF-Anweisung würde ich eventuell mal die CASE-Anweisung
probieren.
Wenn
if (act_sensor_number==4)
act_sensor_number=8;
nochmal etwas überdacht wird...
Lustig wäre wenn er Primzahlen ausspuckt, aber man kann ja nicht alles
haben!
Gruß
dat
Beast
Kathleen Z. schrieb: > Stefan schrieb: >> Naja du setzt ja deine act_sensor_number auf 8 falls >> act_sensor_number==4. > > ah jo...hoppla...VIELEN DANK! - jetz is der Knoten auch weg... Das wundert mich ehrlich gesagt nicht. Denn deine Code-Formatierung ist, ganz ehrlich und frei gesagt, ziemliche Scheisse. Dass du in
1 | if (act_sensor_number<=3) |
2 | act_sensor_number++; |
3 | else { |
4 | if (act_sensor_number==4) |
5 | act_sensor_number=8; |
6 | else
|
7 | act_sensor_number=0; |
8 | }
|
die Logik nicht mehr auf einen Blick erkennen kannst, verwundert nicht wirklich. Mit einer konsistenten Einrückung und ein paar Leerzeichen an strategischen 'Lese'-Punkten ...
1 | if (act_sensor_number <= 3) |
2 | act_sensor_number++; |
3 | |
4 | else { |
5 | if (act_sensor_number == 4) |
6 | act_sensor_number = 8; |
7 | else
|
8 | act_sensor_number = 0; |
9 | }
|
sieht das alles gleich viel besser aus. und wenn man dann auch noch das else mit dem if zu einem 'else if' zusammenzieht
1 | if (act_sensor_number <= 3) |
2 | act_sensor_number++; |
3 | |
4 | else if (act_sensor_number == 4) |
5 | act_sensor_number = 8; |
6 | |
7 | else
|
8 | act_sensor_number = 0; |
dann sieht man eigentlich das 'Problem' recht schnell. Fazit: arbeite an deiner Code-Formatierung! Dein Problem gehörte zu den Dingen, die nicht notwendig sind, wenn man seinen Code sauber hält. Obwohl: Manchmal hat man wirklich Tomaten auf den Augen. Ist uns allen schon so gegangen.
danke für die Info - bin aber erst seit kurzem unter den C-Programmierern bzw. MUSS ich es machen um die Abendschule positiv abschließen zu können. tdm DANKE für das Feedback und die Infos... ;-)
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.