Hallo, ich habe eine Frage zu Compilern. Ich hoffe ich bin hier richtig. Ich programmiere zur Zeit die AVR mit Bascom - also einen Basiccompiler. Ist es eigentlich besser (schnelleren Maschinencode), mit C- Compilern zu arbeiten? Und wenn, welchen? Danke für die Antworten. Gruß Walle
Hi, Mit asm kann man den effektivsten Code (was Geschwindigkeit und/oder Grösse betrifft) programmieren, allerdings ist es auch der aufwendigste Weg. C hat den Vorteil unabhängig vom Prozessor (bis auf die jeweiligen Erweiterungen) zu sein, so kann man recht leicht mal einen M16C oder C167 programmieren, ohne lange Einarbeitung. Der Bascom macht recht kompakten Code. Wenn Dein Basicprogramm für deine Anwendung schnell genug ist und du keine Platzprobleme hast, gibt es keinen Grund etwas anderes zu benutzen. Es sei denn, Du willst vielleicht mal einen anderen Controller ausprobieren..... Bis dann, Ingo.
Hallo Ingo, > Mit asm kann man den effektivsten Code (was Geschwindigkeit und/oder Grösse betrifft) programmieren ... Gut, dass Du das Wörtchen "kann" gewählt hast. Andernfalls hätten wir beide nun eine heftige Diskussion. Die heutigen guten C-Compiler sind so ausgereift und produzieren einen solch effektiven Code, dass Du kaum noch eine Chance hast, hier mit Assembler deutliche Vorteile herauszuholen. Und wenn überhaupt, dann musst Du schon ein absoluter Crack in Assemblerprogrammierung sein, sowas lernt man nicht in wenigen Monaten. Diese Annahmen, dass man mit Assembler wesentlich besseren und effektiveren Code programmiert sind Fakten aus längst vergangenen Zeiten, aber sie haben sich bis heute als hartnäckige Gerüchte gehalten. Nicht umsonst ist heutzutage C im Profibereich der Mikrocontroller-Programmierung Standard. Aber es gibt halt immer noch irgendwelche hartnäckigen Dinosaurier, die weiterhin mit althergebrachten Methoden arbeiten möchten. Ich habe sogar schon erlebt, dass jemand versucht hat, den BS2000 Editor EDT auf Unix zu portieren als er in seinem Arbeitsbereich das Betriebssystem wechseln musste, natürlich ohne Erfolg. Der gute Mann hat übrigens entnervt aufgegeben und ist nun schon längere Zeit im Ruhestand ;-) Soweit meine 0.02$ zu diesem Thema. Gruss Peter
Manche Sachen kann man aber nicht mit C machen. Ich programmiere gerade an einem DDS-Signalgenerator, und da kommt es auf jeden einzelnen Taktzyklus an... aber wenn eine so harte Echtzeitfähigkeit nicht nötig ist gibt es eigentlich keinen Grund nicht C zu verwenden :-) Gruß Andreas
Hallo, Danke für die Antworten, aber Eure Diskussion beantwortet leider meine Frage nicht so recht. Bascom oder C? Danke Schöne Grüße Walle PS:Ich habe aber grunsätzlich nichts geger Diskussionen
Hi Walle, im Grunde sind deine Fragen doch schon beantwortet. BASCOM ist ein Basic - Compiler, denn du nur für den AVR und in einer anderen Version auch für den 8051 nutzen kannst. Die beiden Versionen sind nicht kompatibel. Der erzeugte Maschinencode ist recht kompakt, hinkt aber einem mittelmäßig programmiertem Assembler - Code hinterher. Der BASCOM - Compiler ist manchmal ganz schön kopflastig. Allerdings kenne ich die neueste Version noch nicht. Der C - Compiler ist in seiner Grundversion im Prinzip für alle Controler geeignet. Durch spezielle Bibliotheken wird der Compiler an die unterschiedlichen Controller angepasst. Aber auch "C" erzeugt teilweise noch viel Überhang. Andreas hat recht mit seiner Aussage über zeitkritische Anwendungen. Wenn man sich also nicht auf einen speziellen Controller festlegen will, ist "C" die gute Wahl. Für die 8051er und die AVR`s ist BASCOM von seiner Einfachheit her spitze. Der Meinung von Peter über "C" kann ich mich nicht voll anschliessen. "C" ist nur deshalb soweit verbreitet weil es der erste portierbare Compiler für Controller auf dem Markt war. Nicht weil es so gut ist........... Es grüßt Günter der Dinosaurier
Hi an alle, Danke für die Antworten. Hat mir doch geholfen. Ich programmiere seit ca. einem Jahr mit Bascom (sehr einfach und sehr kurze Einarbeitungszeit) und ich habe mir schon gedacht, dass ich zeitkritische Aufgaben mit Assembler oder "C" lösen muss. Vielleicht sollte ich mich doch noch in "C" einarbeiten. Schönen Tag noch. Gruß Walle
Na Walle, wenn du es nicht unbedingt brauchst, tue es dir nicht an. Es grenzt an Selbstkasteiung............. Günter
Also Günter, ich weiss nicht, ist das tatsächlich dein Ernst, jemandem abzuraten, sich mit C zu beschäftigen? Das hört sich ja fast so an, als ob diese Programmiersprache bei Dir ein Trauma hinterlassen hat! Aber wenn es tatsächlich darum geht den letzten Rest an Effektivität herauszukitzeln, dann könnten wir uns doch mal über VHDL oder FPGA-Design unterhalten, wie wäre es denn damit? Das ist doch bestimmt nicht mehr zu toppen. So ganz nach dem Motto, wir basteln uns einen eigenen Prozessor. Ach ja, das Ganze ist kein Quatsch. Wer sich für sowas interessiert, kann ja mal bei http://www.opencores.org vorbeischauen. Ansonsten wünsch ich allen ein schönes WE, insbesondere unserem selbsternannten Ober-Dino Günter ;-) Gruss, Peter
Hi Peter, :-) so ganz Ernst sollte man das nicht nehmen, natürlich nicht. Und ich denke mal, das der Walle das wohl auch nicht sooooo wörtlich nimmt. Aber ich habe versucht, mir "C" selbst beizubringen, und irgendwie klappte das auch. Aber es ist manchmal ganz schön Frust dabei....... Und FPGA ist garnicht schlecht. Das steht demnächst an, da ich eine kleine Tastatur brauche und ich den 74C922 damit nachbilden will. Ich weiß, mit Kanonen auf Spatzen schießen, aber das wird dann eben mein erster, halbwegs intensiver Einstieg in diese Geschichte. In diesem Sinne, Günter
Hallo Günter, also wenn Du wirklich Interesse an dieser Sache hast, ich bin nun schon seit einiger Zeit auf der Suche nach Informationsmaterial, Freeware-Tools usw. Aber was schon beim Thema GALs schwierig ist, scheint beim Thema FPGA fast unmöglich zu werden. Das ist wohl ein Thema, da spielen nur Leute aus der Oberklasse-Liga mit. Aber es gibt schon ein paar nette Tools als abgespeckte Versionen für lau. Die werde ich demnächst mal austesten. hier mal als Tip: http://www.mycad.com/products/product.html Die beiden Programme MyVHDL-Station und MyLOGIC-Station schauen sehr interessant aus und die gibt es als sogenannte "Studentenversionen" mit kleinen Einschränkungen, die aber für einen privaten Nutzer immer noch sehr interessant sind. Beste Grüsse, Peter
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.