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:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
uint8_t und nun?
20.12.2015, 22:02 (Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2015 02:21 von Bitklopfer.)
Beitrag #1
uint8_t und nun?
Hallo zusammen
ich probier gerade ein Funkmodul (Hoperf RFM 26).
Der erste Test mit der libary von Radio-Head (RadioHead Packet Radio library for embedded microprocessors) funktioniert.

ich habe es soweit Verstanden das ein "uint8_t" ein byte als vorzeichenlosen Wert bezeichnet. ein "uint8_t Data[] wohl ein Datenfeld
im Beispiel wird ein Feld mit uint8_t Data[] = "Hallo Welt "; angelegt.
Hier nun meine Frage : wie kriege ich hier wärend der Laufzeit was anderes rein? z.B. uint8_t = count(int) oder temperatur(float gelesen vom Funkmodul).

Kann mir das jemand mal erklären

PS meine Suchmaschine funktioniert, haba aber nicht das passende gefunden oder die falschen Suchbegriffe.


mfg old56Man

PS nochmal habe vergessen zzu erwähnen das das Ganze auf einem Arduino Pro-Mini Clone läuft.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.12.2015, 10:57
Beitrag #2
RE: uint8_t umd nun?
Ich versteh nicht, warum du in eine Variable vom Datentyp "uint8_t" was anderes reinhaben möchtest.
Der Datentyp ist mit "uint8_t" festgelegt und du kannst nur andere Daten hinein bekommen, wenn diese zuvor umgewandelt werden.

Und da findest du im Netz sehr viele Beispiele:
https://de.wikipedia.org/wiki/Typumwandlung

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 19:31
Beitrag #3
RE: uint8_t und nun?
Hi, ich bin auch genau wie der Kollege oben auf der suche nach einer Umwandlung der eingelesenen Daten in das uint8_t Format. Meine Aufgabenstellung sieht folgendermaßen aus: Ich lese ein DHT22 Sensor aus, dieser soll dann per 2,4Ghz Modul (NRF24L01) zu einem anderen Arduino die Daten übertragen die auf einem LCD Display dargestellt werden. Das Übertragen eines Textes ("Hello World") habe ich auch schon soweit hin bekommen. Problem ist wenn ich die Daten im float Foramt einlese diese nicht konvertiert bekomme. Hier mein Sketch. Wäre super wenn mir jemand helfen könnte hänge da jetzt schon 3 Abende dran.

Dieser Weg geht:
uint8_t data[] = "Hello World!";
nrf24.send(data, sizeof(data));

Dieser geht nicht:

t = dht.readTemperature();
uint8_t data[] = t;
nrf24.send(data, sizeof(data));

Ich bin für jeden Tip zu haben Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 19:39
Beitrag #4
RE: uint8_t und nun?
Das Funkmodul kann wahrscheinlich nur Bytefolgen (Arrays) versenden. Also müsst ihr eure anderen Werte (float, int, ...) in solche wandeln.
Sucht mal hier im Forum nach "Bytemühle", da gibt es gute Beispiele.
Auch sprintf kann hilfreich sein, sowie einige Grundkenntnisse in C.

Gruß Tommy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 20:04 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2016 20:07 von Pit.)
Beitrag #5
RE: uint8_t und nun?
Dieser Weg geht:
uint8_t data[] = "Hello World!";
nrf24.send(data, sizeof(data));
------
// geeignete Laenge
#define maxlaenge 25
uint8_t data[maxlaenge];
....
sprintf ((char*)data, "..... fomat.....", t);
nrf24.send(data, strlen ((char*)data);
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 20:10
Beitrag #6
RE: uint8_t und nun?
Hi,
such doch mal hier in den Tutorials nach UNION....ist ein Beitrag von ardu_arne.
Hope it helps.
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
23.02.2016, 20:36
Beitrag #7
RE: uint8_t und nun?
Hallo,
im Grunde sieht das, was Du vor hast so aus:

Hier mußt Du den String definieren, so:

char Zeit[6];
char kStd[3];
char kMin[3];
char GZeit[9];

damit gibst Du dem String die "Größe vor"

dann bekommst Du Werte, hier Zeit:

minutes = (((minutes & 0b11110000)>>4)*10 + (minutes & 0b00001111));
hours = (((hours & 0b00110000)>>4)*10 + (hours & 0b00001111)); //BCD/DEZ - 24:00 Format


diese Werte mußt Du in das richtige Format bringen:

snprintf(Zeit,sizeof(Zeit),"%02d:%02d",hours,minutes);// String Zeit

dann sollte- sende "Zeit" funktionieren…

Arduino und String ist nicht ganz einfach. Wenn Du "float" als String senden
willst- dann wird es sportlich…

Gruß und Spaß
Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.02.2016, 21:15
Beitrag #8
RE: uint8_t und nun?
Hallo old56Man,
habe vor kurzem auch float-Werte per Funkmodul übertragen. Auf meiner Homepage(http://arduino-projekte.webnode.at/meine...staufbau/) findest du dazu 2 Beispiele dazu. Einmal, wo ich die 4 Bytes, aus denen in Arduino ein Floatwert besteht, mit Hilfe von Pointer übertrage und einmal mit der Verwendung von Unions (wie im bereits genannten Beitrag von ardu_arne).
(Siehe speziell: http://cms.arduino-projekte.webnode.at/m...rogramm/).
Gruß
Retian
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  String to uint8_t itsy 7 1.999 12.12.2014 22:33
Letzter Beitrag: itsy

Gehe zu:


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