INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 2 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
gegenseitiges Zuweisen von Pointeradressen und Ihrer "Werte"
03.10.2015, 12:49
Beitrag #17
RE: gegenseitiges Zuweisen von Pointeradressen und Ihrer "Werte"
(03.10.2015 12:27)HaWe schrieb:  aber irgendwie ist bei mir aus alten Zeiten immer noch drin dass
byte arr[4];
und
long arr; // aka int32_t arr;
"irgendwie" ziemlich das gleiche "sind". Was natürlich nicht stimmt, klar.
Auf einer entsprechenden Maschine (z.B. Due, glaube ich) und auf der richtigen Ebene betrachtet, ist das schon irgendwie richtig. Sowohl ein Array, als auch ein Pointer als auch ein long sind da vier Bytes. (Etwas verwirrend ist in dem Beispiel, dass der vom Array reservierte Speicherplatz auch 4 Byte ist, aber das ist wieder was anderes.)
Auf einem Uno, Nano oder so stimmt das allerdings ganz und gar nicht. Ein long hat da auch 32 Bit, aber ein Zeiger hat nur 16 Bit.

Zitat:Die Bytes in byte array[4] werden aber schon öfter verwendet, überwiegend als Puffer um auch andere Daten (Sensoren, Berechnungen) zwischenzuspeichern, bevor sie dann nacheinander sortiert in einen großen array[31] kopiert werden, um dann auf die große Reise zu gehen...
...dann ist die Lösung mit dem direkten Kopieren (memcopy) wahrscheinlich die Beste.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.10.2015, 13:24
Beitrag #18
RE: gegenseitiges Zuweisen von Pointeradressen und Ihrer "Werte"
Zitat:...dann ist die Lösung mit dem direkten Kopieren (memcopy) wahrscheinlich die Beste.,
stimmt, das werde ich jetzt auch so machen.
Aber ich habe dafür jetzt ne Menge über Pointer gelernt!
Danke nochmal! [Bild: icon_thumbs.gif]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.11.2015, 16:43 (Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2015 18:01 von HaWe.)
Beitrag #19
RE: gegenseitiges Zuweisen von Pointeradressen und Ihrer "Werte"
doch noch eine Anschlussfrage:

wenn ich die float-Zahl nicht an pos. 0 des arrays kopieren will, sondern an pos. x, wie geht das dann?

memcpy(array[x], &float32, sizeof(float));

geht nicht
...

vielleicht
memcpy(array+x*sizeof(float), &float32, sizeof(float));

Huh
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.11.2015, 18:33
Beitrag #20
RE: gegenseitiges Zuweisen von Pointeradressen und Ihrer "Werte"
(04.11.2015 16:43)HaWe schrieb:  memcpy(array[x], &float32, sizeof(float));
Versuch's mal so:
Code:
memcpy(&(array[x]), &float32, sizeof(float));
Das geht natürlich nur, wenn es sich um ein float-array handelt.

Zitat:memcpy(array+x*sizeof(float), &float32, sizeof(float));
So müsste es auch gehen, unabhängig davon, ob es ein float-array ist oder nicht.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.11.2015, 20:36
Beitrag #21
RE: gegenseitiges Zuweisen von Pointeradressen und Ihrer "Werte"
Hi,
habt ihr zu dem Thema mal den Thread von Arne gelesen...über Union's kann man floats und ander Longs leicht in Bytes zerlegen und andersrum.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.11.2015, 20:48 (Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2015 21:11 von HaWe.)
Beitrag #22
RE: gegenseitiges Zuweisen von Pointeradressen und Ihrer "Werte"
nee, viel zu kompliziert!
ich arbeite quasi mit raw-Werten, die ganz einfach direkt zwischen 2 Speicheradressen kopiert werden. Schneller geht's nicht!

Thorsten, das letzte Beispiel funktioniert, wie es aussieht!

Anders herum geht es genau so einfach, zur Rückumwandlung eines beliebigen byte-array-Bereichs in float, int oder long!


byte array[64];
float float32;
int x;
memcpy(array+x*sizeof(float), &float32, sizeof(float));

Ich hatte mich nur nicht getraut, um den Raspi- und den Arduino-Speicher nicht ins Nirwana zu schießen Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2015, 18:42
Beitrag #23
RE: gegenseitiges Zuweisen von Pointeradressen und Ihrer "Werte"
(04.11.2015 20:48)HaWe schrieb:  Ich hatte mich nur nicht getraut, um den Raspi- und den Arduino-Speicher nicht ins Nirwana zu schießen Wink
Ich glaube, dass da nicht viel passieren kann. Auf dem RasPi hat jeder Prozess seinen eigenen Speicherbereich. D.h. es stürzt nur der Prozess ab, in dem das Programm läuft. Beim Arduino lädt man einfach einen neuen Sketch.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Zahl von SD-Card Modul einlesen und Var. zuweisen Nafetz 13 294 28.10.2016 10:12
Letzter Beitrag: hotsystems
  Gewichteten Durchschnitt berechnen, 20 Werte in fortlaufender Variable speichern TimeMen 10 466 03.07.2016 09:00
Letzter Beitrag: Binatone
  Ausgabe druckt immer 2 Werte anstatt nur einen. Finde den Fehler nicht TimeMen 24 736 02.07.2016 14:18
Letzter Beitrag: hotsystems
  Werte an anderes Programm weiterleiten Typ 2 434 12.03.2016 23:28
Letzter Beitrag: Typ
  digitale Werte trotz Stromunterbrechung nicht verlieren goldfisch 63 4.221 06.01.2016 13:17
Letzter Beitrag: Bitklopfer
  werte vom MPU6050 gy521 bekommen max1798 0 459 18.12.2015 21:11
Letzter Beitrag: max1798
  Arduino werte auslesen Atwist 11 1.320 21.11.2015 20:58
Letzter Beitrag: hotsystems
  Werte aus der SD - Karte zuordnen Gandalf 19 1.907 12.09.2015 12:48
Letzter Beitrag: Gandalf
  DHT22-Werte via Funk MeisterQ 27 4.884 27.07.2015 21:48
Letzter Beitrag: MeisterQ
  Werte in die UTouchCD.h eintragen jgrothe 0 439 17.06.2015 17:23
Letzter Beitrag: jgrothe

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste