Hallo bräuchte mal wieder eure hilfe. Ich möchte aus einer Integer zahl mit komma 2 byte declarationen machen. das ganze sieht wie folgt aus int weg[] = {35,23}; jetzt möchte ich im Loop den Weg abfragen und dieser soll jetzt wie folgt aufgeschlüsselt werden weg ( byte länge, byte breite) 35,23 35 23 so in etwa.
marc2805 schrieb: > int weg[] = {35,23}; Das ist keine "Integer-Zahl", das ist ein int-Array mit zwei Element. marc2805 schrieb: > weg ( byte länge, byte breite) > > 35,23 35 23 int[] weg = {35,23}; char laenge; char breite; while(0) { laenge = weg[0]; breite = weg[1]; }
Hi Kennt den keiner der Aruino-Jünger highByte(x) und lowByte(x)? MfG spess
>Kennt den keiner der Aruino-Jünger highByte(x) und lowByte(x)?
... geht bei:
int weg[] = {35,23};
aber in die Hose ...
Mir wäre daniels variante auch lieber. allerdings hab ich mehrere wege. gibt es da auch einen allgemein befehl. zb. int weg[] = {35,23}; int weg1[] = {12,23}; int weg2[] = {27,6}; char laenge; char breite; while(0) { laenge = [0]; breite = [1]; } so das ich im loop nur den weg weg1 oder weg2 benenne und dann die zahlen im array nach laenge und breite ausgegeben werden
Hi >so das ich im loop nur den weg weg1 oder weg2 benenne und dann die >zahlen im array nach laenge und breite ausgegeben werden Stichwort: Mehrdimensionale Arrays. http://forum.arduino.cc/index.php?topic=30445.0 Mfg Spess
marc2805 schrieb: > so das ich im loop nur den weg weg1 oder weg2 benenne und dann die > zahlen im array nach laenge und breite ausgegeben werden Ich verstehe das ehrlich gesagt nicht ganz. Willst du zur Laufzeit entscheiden welches der Arrays ausgegeben werden soll? Das wäre wie folgt möglich (keine Garantie, dass der Code compilierbar ist):
1 | int weg[] = {35,23}; |
2 | int weg1[] = {12,23}; |
3 | int weg2[] = {27,6}; |
4 | |
5 | char laenge; |
6 | char breite; |
7 | |
8 | int *pWeg; |
9 | |
10 | ...
|
11 | |
12 | switch(selectedWeg) { |
13 | case 0: |
14 | pWeg = weg; |
15 | break; |
16 | case 1: |
17 | pWeg = weg1; |
18 | break; |
19 | case 2: |
20 | pWeg = weg2; |
21 | break; |
22 | default:
|
23 | pWeg = weg; |
24 | break; |
25 | |
26 | |
27 | while(0) { |
28 | laenge = *pWeg; |
29 | breite = *(pWeg + sizeof(int)); |
30 | }
|
marc2805 schrieb: > Hallo bräuchte mal wieder eure hilfe. > > Ich möchte aus einer Integer zahl mit komma 2 byte declarationen machen. Wirrkopf. Versuche doch BITTE !!!! zu allererst mal deine wirren Gedanken so in Form zu bringen, daß man verstehen kann, was dir eigentlich im Kopf herumgeht. Also: Eine Integerzahl hat KEIN Komma. Entweder ist sie 35 oder 23, aber niemals 35,23. Wenn du 2 Bytes zusammen haben willst, dann deklariere dir einen Struct so etwa wie dieser: struct TPoint { byte x; byte y; }; und ne Variable dazu struct TPoint MyPoint; und benutze diese Variable dann nach Gutdünken, z.B. MyPoint.x = 24; MyPoint.y = 38; Ich hab's bislang nicht wahrhaben wollen, was für verheerende Folgen dieses Arduino-Zeugs auf lange Sicht hat. Daa Blinky aus den Demo-Beispielen kriegt zwar jeder Akolyth binnen 5 Minuten zum Blinken, aber direkt dahinter kommt die geistige Wüste, die sich selbst darin äußert, daß die Arduino-Bastler es nicht einmal schaffen, ihre Gedanken in eine verstehbare Form zu bringen. Was soll bloß DARAUS werden? Ich halt mich derweil lieber an eine 2010er Kanzler Spätlese, da hat man mehr davon. W.S.
Schmeiß doch mal eine Pupille auf die grundlegenden Datentypen in C. mit: >int weg[] = {35,23}; deklarierst Du zwei Integerzahlen und initialisierst sie mit den Werten 35 [0] und 23 [1]. Kannst Du aber später mittels >char laenge; diese einem char-Wert zuweisen, stellt sich mir die Frage: Warum nicht gleich char weg[] = {35,23}; Den größeren Wertebereich der Ausgangszahlen kannst Du ja doch nicht ausnutzen, wenn Du sie später in einen char stopfst bzw. stopfen kannst.
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.