stringToBinary gesucht

OP #6374844
Lesenswert?
• ▲
▼
Hallo allerseits,

im Arduino lese ich einen string ein, den ich per  SPI ausgeben will. 
Der an den SPI angeschlossene Chip soll aber Registerinhalte erhalten. 
Ich werde das also in das Binärformat wandeln müssen.

Wie macht man das?

Die Funktionsliste der Arduinohilfe lässt keinen Hinweis darauf erkennen 
(oder ich habe den Übersehen)

Grüsse
Robert
Gast #6374850
Lesenswert?
• ▲
▼
Tja, dann solltest du mal lernen, wie man Eingabe-Konvertierungen - also 
Ziffernfolge in einer Zeichenkette - denn so programmiert. Es gibt ne 
Menge Beispiele hier im Forum (ja,auch von mir), guck einfach mal. Im 
Prinzip ist das alles nicht wirklich schwer, du solltest derartige 
Algorithmen binnen 1..2 Minuten selber ausgedacht haben.

W.S.
Gast #6374852
Lesenswert?
• ▲
▼
R. F. schrieb:
> im Arduino lese ich einen string ein, den ich per  SPI ausgeben will.
> Der an den SPI angeschlossene Chip soll aber Registerinhalte erhalten.
> Ich werde das also in das Binärformat wandeln müssen.

Nein. SPI transferiert Zahlen. Im simplen Fall:
1
receivedVal = SPI.transfer(val);

Du willst also Strings in Zahlen wandeln:
1
       #include <stdlib.h>
2
       int atoi(const char *nptr);

leo
Gast #6374858
Lesenswert?
• ▲
▼
R. F. schrieb:
> Hallo allerseits,
>
> im Arduino lese ich einen string ein, den ich per  SPI ausgeben will.
> Der an den SPI angeschlossene Chip soll aber Registerinhalte erhalten.
> Ich werde das also in das Binärformat wandeln müssen.

Wenn du den String über das serielle Interface einliest, dann versuche 
es mal mit 'Serial.parseInt'. Diese Methode und weitere sind in der 
Stream Klasse definiert.
OP #6374909
Lesenswert?
• ▲
▼
Ich sehe mich missverstanden...

ich habe einen Chip an den SPI eines Arduino angeschlossen.
Der Arduino hat am seinem USB-Stecker eine Verbindung zum Terminal.
Über dieses gebe ich ein: '07E28f91'  .
Dieses stellt die ASCII-Repräsentation einer Hexadezimalzahlm dar.
Dieses soll jetzt in den am SPI hängendem Chip geschrieben werden.
Dazu lese ich mit serial.read den String ein. Ich will den per SPI in 
den Chip schreiben.

Wie muss ich wandeln?

Gruss

Robert
Gast #6374918
Lesenswert?
• ▲
▼
Hi,
>Dieses stellt die ASCII-Repräsentation einer Hexadezimalzahlm dar.
und wenn du nun jeder einzelnen "ASCII-Repräsentation" den ASCII Wert 
klaust, haste da nicht den Hexwert? also "0" = $30 - $30 = $0
Was ist da so schwer drann?

Viel Erfolg, Uwe
#6374920
Lesenswert?
• ▲
▼
R. F. schrieb:
> Ich sehe mich missverstanden...

Du hast allerdings auch nicht richtig erklärt was du unter "String in 
Binärformat wandeln" verstehst.

> ich habe einen Chip an den SPI eines Arduino angeschlossen.
> Der Arduino hat am seinem USB-Stecker eine Verbindung zum Terminal.
> Über dieses gebe ich ein: '07E28f91'  .
> Dieses stellt die ASCII-Repräsentation einer Hexadezimalzahlm dar.
> Dieses soll jetzt in den am SPI hängendem Chip geschrieben werden.
> Dazu lese ich mit serial.read den String ein. Ich will den per SPI in
> den Chip schreiben.

Ok, also möchtest du den Inhalt des String als Hexadezimalzahl 
interpretieren und in einen Integer umwandeln. Dafür kann man strtoul 
verwenden.
http://www.cplusplus.com/reference/cstdlib/strtoul/
base wäre in dem Fall 16.
#6374947
Lesenswert?
• ▲
▼
Wolfgang schrieb:
> Über SPI kann man nur Bytes versckicken. UL macht die Sache nicht
> einfacher. Da ist dann schon die nächste Frage vorprogrammiert.

Was er da genau machen will, ist immer noch nicht so klar. Aber ja, auf 
eine Folgefrage warte ich auch schon. ?

Ich habe daraus:

R. F. schrieb:
> Über dieses gebe ich ein: '07E28f91'  .

geschlossen, dass er evtl. 32-Bit-Werte wandeln will.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren