Forum: Compiler & IDEs Text und Zahlen Ausgabe über HID (USB Teensy 2++)


von Elias 1. (alajas)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe einen USB Teensy 2++ und möchte gerne über das HID Listen 
Programm Text und Zahlen (variablen) ausgeben.

Jedoch geht das leider nicht. Text schon aber Zahlen funktionieren 
nicht.
Mit der Funktion Phex geht es. print, printf oder sprintf geben aber 
nichts aus.
print (); Gibt leider nur Text aus.
Alles andere funktioniert nicht =(

Die Orriginal Datein habe ich von

http://www.pjrc.com/teensy/hid_listen.html

dort habe ich auch das HIDListen Programm her.

Vll. kann mir wer helfen.

Oder hat jemand eine bessere Idee wie ich mit dem uC Zeichen,Zahlen und 
Text am Pc ausgeben kann?

Mfg Elias

von Karl H. (kbuchegg)


Lesenswert?

>     sprintf("%c plus %c ist gleich %c.", 1, 1, "Fünf");


Wie wärs erst mal mit einem C-Buch?
1
char buffer[40];
2
3
    sprintf(buffer, "%d plus %d ist gleich %s.", 1, 1, "Fünf");
4
    print( buffer );


sprintf gibt sowieso nichts direkt aus. sprintf schreibt seine Ergüsse 
lediglich in ein char-Array. es obliegt dann dir, dieses char-Array, 
vulgo 'den String', auszugeben.

Und sieh dir die Sache mit den Format-specifiern an. Du kannst nicht 
einfach irgendwas in den Format String reinschreiben und hoffen, das 
passt dann schon irgendwie.

von Elias 1. (alajas)


Lesenswert?

Danke für die Antwort,

die Funktion spintf ist mir bekannt, habe ich mir gestern durchgelesen.
Das Problem ist es funktioniert trotzdem nicht.


char buffer[40];

    sprintf(buffer, "%d plus %d ist gleich %s.", 1, 1, "Fünf");
    print( buffer );

Error: Invalid initializer

mit der Fehlermeldung fange ich leider nichts an.

Ebenso ist es mir bewusst das ich Variablen nicht einfach über printf 
ausgeben kann....ohne sie dementsprechend vorzubereiten.

Ich habe gestern und heute schon einiges probiert komme aber hier 
absolut nicht weiter.

von Karl H. (kbuchegg)


Lesenswert?

Elias 1234 schrieb:

> char buffer[40];
>
>     sprintf(buffer, "%d plus %d ist gleich %s.", 1, 1, "Fünf");
>     print( buffer );
>
> Error: Invalid initializer
>
> mit der Fehlermeldung fange ich leider nichts an.

zeig bitte den ganzen Kontext. Also das was du in deinem Programm dann 
tatsächlich eingebaut hast.

"invalid initializer" ist ja eigentlich selbsterklärend.
Ein initializer ist ein Sprachkonstrukt, welches etwas initialisiert 
(also eine erste Belegung einer Variablen herstellt). Und deiner ist 
eben invalid, also ungültig.


PS: Dir ist schon bewusst, dass ich hier nur den relevanten Abschnitt 
der Änderung bzw. Ergänzung in der Antwort angegeben habe? In dein 
Programm einbauen, und zwar korrekt einbauen, musst du es schon selber.

von Elias 1. (alajas)


Lesenswert?

Ich will doch einfach nur eine Variable die selbst definiere auf meinem 
Bildschirm ausgeben.

int Puffer [40]; // Int Array 40 Zeichen lang wird angelegt (leer)
int x = 12;     //int variable die den Wert 12 annimmt
sprintf(Puffer, "%d", x); // ich vermute hier wird die int variable in 
den Puffer gelegt
print(Puffer)   //Ausgabe des Inhalts welcher Im Array von Puffer steht

und genau bei der letzten Zeile meldet der Compiler diesen Fehler.
Was mache ich falsch?


Es tut mir leid, ich bin ein Laie was programmieren betrifft und hoffe 
Ihr habt Verständins.

von Karl H. (kbuchegg)


Lesenswert?

Elias 1234 schrieb:

> Es tut mir leid, ich bin ein Laie was programmieren betrifft und hoffe
> Ihr habt Verständins.

Das einzige wofür ich kein Verständnis habe ist

* warum du nicht dein vollständiges Programm postest
* warum du, gerade wenn du Anfänger bist, nicht in deinem C-Buch auf der
  Seite 1 mit lesen, lernen und üben anfängst. und zwar auf dem PC.

von Pit (Gast)


Lesenswert?

Elias 1234 schrieb:
> die Funktion spintf ist mir bekannt

Das darf man bezweifeln, denn sonst...

Elias 1234 schrieb:
> int Puffer [40];

wüsstest Du, dass das kein int-Puffer ist, der benötigt wird.

von Timmo H. (masterfx)


Lesenswert?

wo erwartest du mit deinem "print" überhaupt die Ausgabe? Soll das über 
das HID device gehen oder an den Uart? Wo ist "print" definiert?

von Elias 1. (alajas)


Angehängte Dateien:

Lesenswert?

Die Ausgabe soll mit der hid_listen.exe ausgegeben werden.
Gewöhnliche print () Ausgaben funktionieren dort.

von Walter S. (avatar)


Lesenswert?

Elias 1234 schrieb:
>  if (x = 12)

das macht nicht das was du willst

von Elias 1. (alajas)


Lesenswert?

stimmt...x ist immer 12
x==12 überprüft ob x 12 ist.
danke

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
Noch kein Account? Hier anmelden.