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.
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.
Es soll ein Messwert in mit 4 Zeichen. In ein Array gespeichert werden wo jedes Zeichen einen Speicherplatz bekommt.
Warum willst du einen Zahlenwert auf so seltsame Art speichern? Was ist dein eigentliches Ziel?
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.
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.
Genau und wie würde dann den Messwert als String gesendet bekommen ?
Sebi schrieb: > Die Zeichen sollen einzeln über Die Uart ausgegeben werden, jedoch ohne > printf. dann sieh dir mal die Funtion itoa an
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.
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?
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.
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.
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.
Ok besten Dank schonmal werd es nachher mal mit itoa probieren. Ach welchen Header muss ich dafür noch einbinden?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.