ohje ich muss ja echt schwer von begriff sein
Naja das vielleicht nicht unbedingt, ich würd sagen, das ist alles Neuland für Dich.
C ist auch nicht unbedingt ganz einfach für Einsteiger, oder Umsteiger
Es wäre besser gewesen C von Grund auf zu erlernen, Du befindest Dich jetzt irgendwie in der Mitte...

Das sieht doch schon gut aus, Dein Programm...
Nur die Endlosschleife hätte ich nicht zum Schluß gesetzt, sondern nach FRONTLED(ON); etwa so
Code:
while(1){
Linedata.....
....
....
Serwrite....
}
Dann kriegst Du laufend die Werte angezeigt, klar ?

Dieses \c ist eine Escapesequenz nur \c fand ich in keiner Liste
Ich denke es ist da um den Text irgendwie zu Formatieren, aber mit welchem Programm ?
Beachte es einfach nicht, vielleicht erklärt es uns jemand

ich vermute ma das "(" dadurch entsteht, da der eingelsene wert eine stelle zu wenig hat
Damit liegst Du schonmal richtig, damit liest Du über die Werte hinaus...
Es liegt an der SerWrite Funktion, ich find sie Käse,mit der Länge, die man übergeben muß.

Abhilfe schaft hier wieder eine weitere Funktion (wer hätte es gedacht) und sie heißt auch ziemlich einfach strlen(zeiger auf Dein String), zu finden in string.h...

wenn Du jetzt also schreibst

SerWrite(puffer,strlen(puffer));

müßte es weg sein.
Besser wäre natürlich eine Serwrite Funktion, die ohne Länge auskommt, sondern das Ende der Zeichenkette an dem "\0" erkennt.
Wenn itoa schon mit Null terminiert, warum soll man es nicht nutzen.

zu der zeile "uint8_t transistorenstring[5];" // bedeutet diese 5, dass 5 bits verwendet werden oder dass 5 dieser strings mit dieser deklaration deklariert werden??
Weder,noch

Sagmal, Du hast Erfahrung mit Java, gibt es bei Java keine Arrays ?

Die Deklaration
uint8_t transistorenstring[5] heißt :
Lege ein Feld von 5 Elementen an und zwar vom Typ uint8_t (unsigned char) oder 0-255 also genau 1 Byte.

Das Feld sieht z.B so aus:
transistorenstring[0] = 1;
transistorenstring[1] = 2;
transistorenstring[2] = 3;
transistorenstring[3] = 4;
transistorenstring[4] = 5;

Beachte, daß alles um eine Stelle nach unten rutscht.
Wenn Du jetzt den Quatsch an eine Funktion übergibst, z.B. Serwrite
übergibst Du einen Zeiger darauf und zwar zeiger auf das Erste Element

Serwrite(transistor) könnte man auch schreiben
Serwrite(&transistor[0])
Die Funktion kann jetzt auf den Zeiger zugreifen und zwar mit dem sternchen womit man dann denn Inhalt des Speichers meint, worauf der Zeiger zeigt ( ist das kompliziert zu erklären )

also etwa so:

b = *transistorenstring++;

Das ist jetzt aber Zeiger Arithmetik, kann man lieber in einem C-Buch nachlesen, bevor ich mir hier einen abbreche

O weh, hab ich jetzt wieder ein Roman geschrieben


Gruß Sebastian