Sortieren von Zahlen
-
Achso, na gut. Der kann ja deine Header-Datei nicht kennen, ich hatte einfach mal angenommen, die 400 Zeilen Code wären alle in einer Datei.
Hast du den Code eigentlich selbst geschrieben oder ist der von jemand anders? Oder andersrum: Verstehst du den Code?
-
du bist lustig. wie soll dir irgendjemand helfen, wenn du aber auch *gar* keine information hergibst?
weißt du wenigstens, welche stelle in den 400 zeilen die relevante stelle ist, um die es geht?
-
Badestrand schrieb:
Achso, na gut. Der kann ja deine Header-Datei nicht kennen, ich hatte einfach mal angenommen, die 400 Zeilen Code wären alle in einer Datei.
Hast du den Code eigentlich selbst geschrieben oder ist der von jemand anders? Oder andersrum: Verstehst du den Code?Teile des Codes sind aus anderen Anwendung reinkopiert. Andere Teile habe ich selbst erstellt. Die selbst erstellten Anteile kapier ich schon. Die kopierten Teile sind nur zur initierung des Displays, zur positionierung der Zeichen, etc. Da brauch ich auch nichts zu Ändern, das passt gerade so.
Es sollte ein Lottozahlen-Generator werden. Eigentlich wollte ich Zufallsfunktion testen. Die gibt aber immer den "selben" Zufall aus - dh. es wird immer die gleiche Zahl geeriert. Hab ich auch irgendwo nachgelesen, dass das mit der 'randomize'Anweisung so ist.
Nun habe ich eben selbst was gebastelt um Zufällige Zahlen in einem definierten Bereich zu erstellen. Und das klappt mittlerweile ganz gut. Es werden ständig sechs Zahlen erstellt, so lange man eine Taste festhält. Durch kleine Pausen im Code sieht das am Display optisch so aus als würden die richtig gemischt. Lässt man die Taste los, werden sechs Zahlen angezeigt. Doppelte Zahlen gibt es auch nicht.Nun wäre es natürlich schön, wenn die Zahlen auch noch in aufsteigender Reihenfolge angezeigt werden könnten. Wichtig zur Funktion ist es freilich nicht, aber sieht eben besser aus.
Die sechs Zahlen sind in jeweils einer Variablen. Die sechs Variablen könnte ich als vor der Ausgabe ans Display sortieren - wenn ich nur wüsste wie
-
Die kopierten Teile sind nur zur initierung des Displays, zur positionierung der Zeichen, etc. Da brauch ich auch nichts zu Ändern, das passt gerade so.
den teil lässt du weg.
Andere Teile habe ich selbst erstellt.
den teil zeigst du uns.
Nun habe ich eben selbst was gebastelt um Zufällige Zahlen in einem definierten Bereich zu erstellen. Und das klappt mittlerweile ganz gut.
sieh, den teil kannst du auch weglassen.
Es werden ständig sechs Zahlen erstellt, so lange man eine Taste festhält. Durch kleine Pausen im Code sieht das am Display optisch so aus als würden die richtig gemischt. Lässt man die Taste los, werden sechs Zahlen angezeigt.
und genau der teil ist der relevante. dort, wo die zahlen generiert und ausgegeben werden, kann man dir mit einem sortierverfahren helfen.
Die sechs Zahlen sind in jeweils einer Variablen. Die sechs Variablen könnte ich als vor der Ausgabe ans Display sortieren - wenn ich nur wüsste wie
du speicherst die zahlen in einem array, sortierst das array und gibst das array dann aus.
-
__
-
Herby99 schrieb:
Also erstens schrei ich nicht herum, und zweitens gibt es bei mir keine Fehlermeldung. Da wird nichts angezeigt. Nur die Anzahl der Errors ist zu sehen - wo der Fehler ist nicht.
Das kann ich mir eigentlich nicht vorstellen. Mir ist noch kein C-Compiler unter gekommen, der nicht mindestens die Zeile, in der der Fehler auftritt anzeigt. Such mal, ob du die Fehlerconsole nicht einfach ausgeblendet hast, die die meisten IDEs das anbieten.
Falls das nicht geht, würde ich mir einen anderen Compiler suchen. Um was für einen Micro-Controller handelt es sich? (Architektur)
-
1. Krass, wieviel hier geschrieben worden ist in der Zeit.
2. Also ich sehe, dass es bei dir um recht banale Sachen geht. Das kannst du an einem Abend alles selber lernen, wenn du ein anständiges Buch, oder Tutorial hast.
Ist hald kein C++, aber : http://www.onlinetutorials.de/c-index.htm
Wenn du da ein paar Stunden investierst, wirst du das meiste verstehen, was wird dir hier gesagt haben und du kannst wahrscheinlich deinen ganzen Code auf 50 - 100 Zeilen kürzen respektive neu schreiben.
-
Hi Herby,
habe ich das korrekt verstanden? Du testest das Programm, indem Du es auf den µController lädst? Hmm. Normalerweise verwendet man dafür einen Debugger und einen Emulator. Das dauernde Hochladen auf den µC ist doch viel zu umständlich, ganz zu schweigen davon, dass Du dann ja nicht vernünftig debuggen kannst und außerdem die meisten (?) µC eine begrenzte Beschreibbarkeit haben (und soo billig sind die ja auch nicht).
-
Ein anständiger Mikrocontroller hat ein hübsches JTAG-Interface und du kannst super toll gleich on-chip debuggen. Ausserdem kannst du so ein Teil praktisch so viel wie du willst neu beschreiben.
Das ist kein Intel 4004 oder so ähnlich, was der Herr hier verwendet. Diese Zeiten liegen doch schon länger zurück...
-
Ein anständiger Mikrocontroller hat ein hübsches JTAG-Interface und du kannst super toll gleich on-chip debuggen. Ausserdem kannst du so ein Teil praktisch so viel wie du willst neu beschreiben.
Das ist kein Intel 4004 oder so ähnlich, was der Herr hier verwendet. Diese Zeiten liegen doch schon länger zurück...
-
Der Code schrieb:
Ein anständiger Mikrocontroller hat ein hübsches JTAG-Interface und du kannst super toll gleich on-chip debuggen. Ausserdem kannst du so ein Teil praktisch so viel wie du willst neu beschreiben.
Das ist kein Intel 4004 oder so ähnlich, was der Herr hier verwendet. Diese Zeiten liegen doch schon länger zurück...Keine Ahnung, ich habe nur ein einziges Mal mit einem µC gearbeitet, vor etwas mehr als zwei Jahren, und der hatte eine Beschränkung. Soo lange können die Zeiten also noch nicht zurückliegen.
… Aber umso besser. Wenn man on-chip debuggen kann, müsste man ja auf jeden Fall auch ne Fehlermeldung bekommen (wobei man ja sicher nicht on-chip compiliert, d.h. einen anständigen Compilerfehler sollte man sowieso bekommen).
-
Herby99 schrieb:
Badestrand schrieb:
Vielleicht wäre dies etwas für dich? Da kannst du deinen Code reinposten, er wird auf dem Server kompiliert und du bekommst die Fehlermeldungen auch angezeigt - ohne ist es wirklich schwierig
Hier ist das Ergebnis:
Comeau C/C++ 4.3.9 (Mar 27 2007 17:24:47) for ONLINE_EVALUATION_BETA1
Copyright 1988-2007 Comeau Computing. All rights reserved.
MODE:strict errors C++ C++0x_extensions"ComeauTest.c", line 21: error: extra text after expected end of preprocessing
directive
#include "sfr_r813.h";
^"ComeauTest.c", line 21: catastrophic error: could not open source file "sfr_r813.h"
#include "sfr_r813.h";
^1 error and 1 catastrophic error detected in the compilation of "ComeauTest.c".
Compilation terminated.Wenn es zur Lösung des Problems beiträgt - ich sehe allerdings keine.
Bist du sicher das es vorher schon mal funktioniert hat?-Er scheint ja nicht mal den Header mit den Definitionen für die SFR-Register zu finden...
Irgendwie vermute ich, dass diese Behauptung, dass du die Zahlen tatsächlich ganz toll, wenn auch unsortiert, ausgeben kannst, einen nicht besonders hohen Wahrheitsgehalt hat? (Sorry im Voraus, wenn ich falsch liege!)
-
Der Code schrieb:
Bist du sicher das es vorher schon mal funktioniert hat?-Er scheint ja nicht mal den Header mit den Definitionen für die SFR-Register zu finden...
Irgendwie vermute ich, dass diese Behauptung, dass du die Zahlen tatsächlich ganz toll, wenn auch unsortiert, ausgeben kannst, einen nicht besonders hohen Wahrheitsgehalt hat? (Sorry im Voraus, wenn ich falsch liege!)Das war nur die Ausgabe des Camaeu-Compilers im Internet
Da kann man etwas Source reinkopieren und prüfen lassen - das funktioniert aber nicht, sobald man mit mehreren Dateien arbeitet, außer man spielt Präprozessor..
-
Du willst einen Mikrocontroller programmieren um mit ihm ein LCD anzusteuern, richtig?
Kauf dir einen ATMega8.
Zieh dir dann das AVRStudio von ATMEL und "paare" dieses mit WINAVR (AVR-GCC) als Compiler.
Mit AVRStudio kannst du dann wunderbar in C codieren, hast einen klasse Simulator zur Verfügung und gratis ist's auch noch.
Um denn Code tatsächlich auf den Controller herunterzuladen, wird es kostenlos allerdings etwas schwerer. (Ein ATMEL AVRISP mkII kostet ca. 60Euro)
Du kannst aber auch diese Schaltung hier nachbauen und mit AVRStudio ein Hex-File erstellen, dass du dann z. B. mit PonyProg und dieser Schaltung am LPT "rüberbrennst". (So kostet auch das praktisch nichts.)Alles in allem kann man sagen, dass du sicher min. etwas C (WINAVR u. AVRStudio), BASIC (BASCOM) oder Assembler (AVRStudio) lernen MUSST, wenn du etwas mit deinen Displays anfangen willst.
Für Fragen zum Thema Mikrocontroller ist ausserdem dieses Forum spitze, da wird man dir evtl. helfen, wenn du von der Vorstellung abkommst, jemand komme zu dir nach Hause, installiere dir die ganze Entwicklungsumgebung und codiere auch gleich noch jedes Prog. das du gerade so möchtest.
(Denn Code um ein Display anzusteuern, wirst du ziemlich sicher sogar noch komplett herunterladen können für einen ATMega8, du musst vor allem erstmal eine Entwicklungsumgebung korrekt installieren, sonst geht da garnichts, Compiler und Simulator inklusive!)
-
Konrad Rudolph schrieb:
habe ich das korrekt verstanden? Du testest das Programm, indem Du es auf den µController lädst? Hmm. Normalerweise verwendet man dafür einen Debugger und einen Emulator. Das dauernde Hochladen auf den µC ist doch viel zu umständlich, ganz zu schweigen davon, dass Du dann ja nicht vernünftig debuggen kannst und außerdem die meisten (?) µC eine begrenzte Beschreibbarkeit haben (und soo billig sind die ja auch nicht).
Ja ich muss das Programm immer neu kompilieren und auf den µC laden.
Leider läuft der Debugger auf meinem Rechner nicht - hab schon einiges versucht, aber er will nicht - bekomme immer bei der Installation schon Probleme.
Das Hochladen geht eigentlich recht schnell - derµC hängt ja ständig am Rechner, also kein andauerndes an- umd abklemmen erforderlich.
Die Überschreibbarkeit ist nicht wirklich beschrenkt - ich glaube da sind mehrere tausend mal möglich.
Der Preis ist relativ; 2,40/Stk.
Übrigens es um den 16-Bit Controller R5F21134FP von Renesas im LQFP32-Case.Ich hab zwar keine Erfahrung mit anderen Controllern, aber der kleine gefällt mir irgendwie. Und weil ich ein paar solcher Teile herumliegen habe möchte ich auch etwas mit diesen Dingern anstellen
Habe noch nicht viel wirklich brauchbares damit gemacht, jedoch einige Spielereien mit LEDs und so hinbekommen.
Erste Schritte eben: Ports aus- und einschalten, Potential abfragen, am Analogeingang Spannung messen und einen Frequenzzählen (die letzten beiden aber mit Codeteilen von anderen Usern - wobei ich diesem Code noch nicht ganz folgen kann
-
Herby99 schrieb:
Ich hab zwar keine Erfahrung mit anderen Controllern, aber der kleine gefällt mir irgendwie. Und weil ich ein paar solcher Teile herumliegen habe möchte ich auch etwas mit diesen Dingern anstellen
Womit wir wieder beim Thema wären. Um etwas damit anzustellen, musst du die Basics der Programmierung beherrschen, z.B. Arrays. Wenn du mit einem Auto "etwas anstellen" willst, recihts auch nicht, zu wissen, wie das Lenkrad funktionieren sollte - Licht, Blinker, Pedale, Schalthebel, Spiegel sind auch wichtig. Und glaub mir, der Umgang mit Arrays ist auch nicht schwerer, man muss es sich nur mal angeguckt haben
-
Womit wir wieder beim Thema wären. Um etwas damit anzustellen, musst du die Basics der Programmierung beherrschen, z.B. Arrays. Wenn du mit einem Auto "etwas anstellen" willst, recihts auch nicht, zu wissen, wie das Lenkrad funktionieren sollte - Licht, Blinker, Pedale, Schalthebel, Spiegel sind auch wichtig. Und glaub mir, der Umgang mit Arrays ist auch nicht schwerer, man muss es sich nur mal angeguckt haben
Du heißt nicht umsonst so wie du heißt - oder ? pumuckl
-
Herby99 schrieb:
Du heißt nicht umsonst so wie du heißt - oder ? pumuckl
Weist du, dass dir pumuckl nur einen guten Rat geben will. Aber das verstehst du wohl nicht. Du solltest dich nur ein bisschem mit den Dingen, die du tust auseinandersetzten. Und mal nebenbei bemerkt, das sind so simple und triviale Dinge, dass es schon lächerlich ist, wie du dich dagegen werst, auch nur ein bisschen was zu lernen. Aber gut... Du stribst dann halt dumm. Erwarte nur nicht, dass man dir hilft, mit diser Einstellung. Du hast hier schon mehr hilfe bekommen, als du es anscheinend verdienst.
-
Du hast hier schon mehr hilfe bekommen, als du es anscheinend verdienst
Ich hab hier auch schon Hilfe bekommen, ja das stimmt.
Ich habe aber auch viele viele Kommentare erhalten, so wie zB. deiner, die mir kein bisschen Hilfe geben. Freilich sind es sehr einfache Fragen die ich hier stelle - schließlich sind ja Foren auch dazu da.
Wenn nur Antworten gegeben würden, die man auch als Antworten bezeichnen kann, dann hätten wir zu diesem Thema hier nicht sieben, sondern blos erst eine Seite gepostet.
-
Herby99 schrieb:
Du hast hier schon mehr hilfe bekommen, als du es anscheinend verdienst
Ich hab hier auch schon Hilfe bekommen, ja das stimmt.
Ich habe aber auch viele viele Kommentare erhalten, so wie zB. deiner, die mir kein bisschen Hilfe geben. Freilich sind es sehr einfache Fragen die ich hier stelle - schließlich sind ja Foren auch dazu da.
Dieses Forum ist nicht dazu gedacht das dir alle Antworten zuspringen.
Fehlende Eigeninitiative und Lernbereitschaft sollten eigentlich nicht unterstützt werden, das du dann auch noch unfreundlich bist wenn man dich darauf hinweist, ist nur ein Zeichen das du definitiv schon zuviel Hilfe hier bekommen hast.cu André