Forum: Mikrocontroller und Digitale Elektronik Array über UART ausgeben (C18)


von Slimer (Gast)


Lesenswert?

Hi

Wie kann ich in C18 am besten einen Text der sich in einm Array befindet 
über UART ausgeben? gibt es eine Möglichkeit, das einfach mit z.B. putc 
zu machen?

Gruß
Simon

von Michael M. (Gast)


Lesenswert?

pointer auf den array-beginn. liefert C freihaus.
while(pointer-inhalt), pointer-inhalt ausgeben, pointer inkrementieren.
tadaa

von Klaus W. (mfgkw)


Lesenswert?

das mit Pointer ist aber gefährlich, hat man mir neulich beigebracht.

von Michael M. (Gast)


Lesenswert?

aha? erläuterung?

von Frank501 (Gast)


Lesenswert?

Pointer sind böse :D

Wenn man den Pointer beim Lesen immer schön weiter inkrementiert, ohne 
darauf zu achten, wo die Daten liegen erhält man im besten Fall einfach 
nur Datensalat.
Beim Schreiben kann es gut passieren, das man ohne Vorsichtsmassnahmen 
andere Daten überschreibt.

Natürlich kann man gerade auf µC's schön Speicherplatz sparen, wenn man 
anstatt Variablen zu definieren und Daten von einer in die andere 
kopiert einen Pointer verwendet. Aber das sollte dann schon soweit 
durchdacht sein, das es zu keinen Irrtümern kommen kann.

Frank

von Rüdiger (Gast)


Lesenswert?

ich hab die Sache mit den Pointer noch nie richtig kapiert. Gibt es 
irgendwo eine (sehr) einache Erklärung in dem Gebiet?

von Michael M. (Gast)


Lesenswert?

> einache Erklärung in dem Gebiet?
ja, hier:
char feld[]={0x13,0x14,0x15}

wenn ich jetzt folgendes mache:
*variable = &feld;
dann steht in variable die adresse der speicherzelle, an der das array 
feld beginnt.
lese ich variable aus, bekomme ich 0x13
lese ich variable+1 aus, bekomme ich 0x14.

ein string ist nichts anderes als ein solches array, das auf \0 endet.
wenn ich danach prüfe, laufe ich mit dem pointer nirgens hin, wo ich 
nicht hingehöre.

von Klaus W. (mfgkw)


Lesenswert?

Michael M. schrieb:
> aha? erläuterung?

Verstanden habe ich es auch nicht, aber man hat es mir so versichert...
Beitrag "Re: Hilfe Struct in einem Array"

von Michael M. (Gast)


Lesenswert?

da wird aber auch nicht auf sinnvolle daten geprüft. da liegt der 
unterschied. bei einem string weißt du, dass er mit NULL endet.

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.