Forum: Mikrocontroller und Digitale Elektronik Messerwert in ein Array schreiben


von Sebi (Gast)


Lesenswert?

Hallo, ich bin noch recht neu in der uc Welt und der c Programmierung, 
und hab mal eine Frage zum Thema Arrays.

Und zwar hab ich ein messwert 4 Stellig (zB 1024) und möchte diesen in 
ein Array speichern jede Zahl ein einzelner Platz (zB Array[0] = 1, [1] 
= 0; usw.) nätürlich ändert sich der Messwert und wollte mal fragen wie 
so ein c Code aussieht.

von ui (Gast)


Lesenswert?

du musst dir gedanken darüber machen, wie viele messwerte du speichern 
können willst. unendlich geht halt nicht.
Dann musst du dir Gedanken darüber machen, wann liest du die Daten 
wieder aus dem Array raus und wie soll das ganze ausschauen.
Wenn du das weißt, stellst du fest, dass du um das array drumherum noch 
etwas brauchst.
Erstmal musst du wissen, wie du reinschreiben willst(wie viele 
Elemente), wie sich das ganze Verhalten soll (schreibst du erst 100 
werte rein und liest dann 100 wieder aus oder willst du lesen und 
schreiben "parallel" machen?)
Erst dann kann man dir weiterhelfen.
Obwohl hier im Forum eigentlich nie jemand für jemand anderen 
programmiert, im besten Fall bekommst du einen mehr oder weniger 
hilfreichen Link.

von Sebi (Gast)


Lesenswert?

Es soll ein Messwert in mit 4 Zeichen. In ein Array gespeichert werden 
wo jedes Zeichen einen Speicherplatz bekommt.

von Walter S. (avatar)


Lesenswert?

Warum willst du einen Zahlenwert auf so seltsame Art speichern?

Was ist dein eigentliches Ziel?

von Sebi (Gast)


Lesenswert?

Die Zeichen sollen einzeln über Die Uart ausgegeben werden, jedoch ohne 
printf. Die Ausgabe funktioniert wenn ich über die Tastertur 20 Zeichen 
eingebe bekomm ich diese auch ausgehen, jetzt soll das Ganze mit werten 
aus dem uc gemacht werden, dazu frage ich mich jetzt wie ich Messwerte 
so speichern kann.

von Karl M. (Gast)


Lesenswert?

Dann hast du evtl. noch einen Denkfehler und
erhälst dann bestimmt die Daten als ASCII String "1024" gesendet und 
nicht ein 1024 als 16Bit Zahl.

von Sebi (Gast)


Lesenswert?

Genau und wie würde dann den Messwert als String gesendet bekommen ?

von Walter S. (avatar)


Lesenswert?

Sebi schrieb:
> Die Zeichen sollen einzeln über Die Uart ausgegeben werden, jedoch ohne
> printf.

dann sieh dir mal die Funtion itoa an

von Peter II (Gast)


Lesenswert?

Sebi schrieb:
> jedoch ohne printf

warum darf es kein printf sein?

als alternative gibt es ja noch itoa().

wenn du beides nicht willst, dann musst du wie in der schule rechnen.

von Sebi (Gast)


Lesenswert?

Sieht gut aus mit itoa. Geht das nur mit int zahlen oder auch mit Short? 
Und in welcher Header ist der Befehl im atmelstudio zufinden?

von Peter II (Gast)


Lesenswert?

Sebi schrieb:
> Geht das nur mit int zahlen oder auch mit Short?

du kannst jeder Funktion die ein int braucht, auch ein Short geben. Das 
wird automatisch konvertiert.

von Sebi (Gast)


Lesenswert?

Hatte in der Uni mal gelernt das man int nicht, nutzen soll da die 
Speicher Größe von int auch Compiler wie Hardware abhängig ist. Und dann 
für Eindeutigkeit auf Short Char ect umsteigen soll.

von Peter II (Gast)


Lesenswert?

Sebi schrieb:
> Hatte in der Uni mal gelernt das man int nicht, nutzen soll da die
> Speicher Größe von int auch Compiler wie Hardware abhängig ist.

ist doch ok. Aber wenn du Funktion ein int braucht, kannst du das ja 
schlecht beeinflussen. Du musst nur wissen wie groß ein int auf deinem 
System ist um keine bösen Überraschungen zu erleben.

von Sebi (Gast)


Lesenswert?

Ok besten Dank schonmal werd es nachher mal mit itoa probieren. Ach 
welchen Header muss ich dafür noch einbinden?

von Axel S. (a-za-z0-9)


Lesenswert?

Sebi schrieb:
> Hallo, ich bin noch recht neu in der uc Welt und der c Programmierung,
> und hab mal eine Frage zum Thema Arrays.

Nein, hast du nicht.

> Und zwar hab ich ein messwert 4 Stellig (zB 1024) und möchte diesen in
> ein Array speichern jede Zahl ein einzelner Platz (zB Array[0] = 1, [1]
> = 0; usw.) nätürlich ändert sich der Messwert und wollte mal fragen wie
> so ein c Code aussieht.

Das nützt dir gar nichts. Ein Array aus Zahlen ist kein Teil der Lösung, 
wenn du das machen willst:

Sebi schrieb:
> Die Zeichen sollen einzeln über Die Uart ausgegeben werden, jedoch ohne
> printf.

Denn dann willst du den Zahlenwert in einen String umwandeln. Dafür 
verwendet man traditionell in der Tat [s]printf() und du hast keinen 
guten Grund angegeben, warum du es nicht benutzen willst. Aber sei es 
drum, es gibt zum Glück ja noch weitere geeignete Funktionen in der 
Standard C-Library.

Welche das sind, hättest du auch selber herausfinden können:

http://j.mp/2aubGax

Sebi schrieb:
> Ok besten Dank schonmal werd es nachher mal mit itoa probieren. Ach
> welchen Header muss ich dafür noch einbinden?

Auch das kannst du trivial selber herausfinden:
1
man itoa

oder falls du auf einem Betrübssystem unterwegs sein solltest, das kein 
Manual hat: in der IDE auf F1 drücken, dann "suchen nach" und "itoa" 
eintippen.

Wenn du weiterhin derartig unfähig (oder faul?) bist, Dinge selber 
herauszufinden, dann hast du keine große Karriere als Programmierer vor 
dir.

von Sebi (Gast)


Lesenswert?

Danke Alex genau solche Antworten brauch man im Forum auf fragen. Immer 
wieder traurig, wie manche Leute sich für götter halten.

Und für die andern nochmal danke mit itoa hat es super geklappt.

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.