Hallo! Ich bin gerade am überlegen welche Sprache ich genauer lernen werde. Was sagen die erfahrenen Profis dazu ASS || C;
Assemblerkenntnisse helfen sehr beim Verstehen des Controllers bzw. seiner Architektur. Gute C-Programmierer (auf Controllern!) verstehen normalerweise auch Assembler. ...
Ja das leuchtet mir ein. Aber welcher uC ist empfehlenswert, erfahrung habe ich mit 89LPC932. Der Preis ca. 9€ ist aber etwas teuer.
89LPC932 ist von Philips wennst dass meinst. Ich hab ne zeit lang mit Jcontrol Programmiert da ist halt gleich ein GraphikDisplay mit 128x64 Pixl integriert. Gibts solche Displays auch für AVRs
> Der Preis ca. 9€ ist aber etwas teuer. Finde ich auch. Wo kostet der denn noch soo viel? Bei reichelt steht er doch schon für nur noch 2,35 Euro in der Liste... Aber ich bin hier als AVRler bekannt und das soll auch so bleiben :-) Also rede ich auch für die AVRs, die übrigens dasselbe Preissegment beschicken wie die 8051er Derivate, die Du schon kennst. Klar gibt es für die AVRs auch Grafik-Displays - das ist auch keine Kunst, weil Displays grundsätzlich erstmal so von allen Controller-Familien angesteuert werden können. Von den AVRs allerdings bevorzugt per SPI, den die Teile eh alle beherrschen, weil sie darüber in-system-programmiert werden. (Ein vergleichweise günstiges "Pictiva" 128x64-Pixel-OLED-Display gibt es wiederum bei reichelt.) Nicht so klar, aber praktisch umso wichtiger ist die hervorragende Software-Entwicklungsunterstützung für AVRs mit Low- bis No-Cost-Tools vom AVRstudio von Atmel (IDE, Assembler und Debugger/Simulator) über WinAVR (von Atmel unterstütztes GCC-Derivat) bis hin zu kommerziellen Compilern für Basic, C oder auch Pascal, je nach Vorliebe, für ein- oder zweihundert Euro. Und für alle gibt es sehr rege Foren wie dieses. Eine entsprechende Low-Cost-Schiene gibt es für den 8051 meines Wissens bisher nicht, da klafft zwischen dem kostenlosen, sehr gewöhnungbedürftigen SCC und den "richtigen" Compilern von IAR und Co noch immer eine Lücke von mehreren tausend Euro. Und nicht zuletzt bringen AVRs von den frei käuflichen 8bit-Controllern wohl immer noch die meisten MIPS pro MHz Oszillatortakt, nämlich 0,8-0,9 für normale Programme. Und das bei bis zu 16 oder 20 MHz, je nach Generation. Die LPC900er von Philips sind für einen 8051-Core allemal "heftig" und im allgemeinen Vergleich auch echt nicht schlecht, liegen mit <0,5 MIPS/MHz bei max 12 MHz aber doch noch deutlich unter den AVRs. Ansonsten noch zu Deiner Frage vom Anfang: C und Assembler gehören einfach zusammen. Also wenn Du mit Assembler anfängst, ist C die logische Fortsetzung nach oben, und wenn Du mit C anfängst, ist Assembler der Unterbau, den lesen zu können, sich allemal lohnt. Gruß Johannes
Hmmmm, der sdcc ist nicht gewöhnungsbedürftiger als der gcc für den AVR. Zudem gibt es 8051er, die 100Mips machen und DSP-Einheiten onBoard haben. Was das angeht, so ist die 8051er Familier mit Sicherheit vielfältiger und auch in der Spitze leistungsstärker als die AVRs. Nur die Philips/NXP-Derivate halt nicht.
Sehe ich auch so wie Michael, zum SDCC ist zu sagen das er in der letzten Zeit erheblich dazugewonnen hat.
ich hab damals das Zeugs bei ELV gekauft. Das ist soweit ich weis ein teurer Tandler.
Meine Meinung ist, dass man ab einer 16-bit Maschine gut auf Assembler verzichten kann. Ich würde gleich mit C einsteigen. Das gewonnene Wissen ist einem auch auf anderen Plattformen und dem PC nützlich. Später kann man sich dann allenfalls immernoch mit Assembler beschäftigen, wenn es nötig wird.
Ja, ok, bei nem ARM verzichte ich auch selber gerne auf Assembler, und bei den abgedrehten 16Bittern, die gegen die 8051er anzustinken versuchen, auch. Ich meine übrigens, mich klar auf die 8bitter bezogen zu haben, also was soll der Quatsch? @Michael und Joe, nennt doch ganz einfach mal Eure Super-Controller, den man z.B. bei reichelt oder sonstwo noch für einen vernünftigen Preis kaufen und dann auch noch mit einem simplen Low-Cost-Tool in-system programmieren kann. Im übrigen kenne ich keine 8051-Derivate, die tatsächlich mit 300 oder 600MHz internem Clock fahren, die für 100MIPS mindestens nötig wären... Gruß Johannes
Und ich hatte für solche Fälle gehofft, eine Löschtaste zu bekommen. Ich bewerbe mich weiter, irgendwan klappts. Und dann sind solche postings schneller verschwunden, als Merkel "dauerhaften Aufschwung" sprechen kan.
Hallo Steff. Bitte nicht mit ASM oder noch schlimmer mit BASIC anfangen das ist zwar mal ganz nett, aber wenn Du regelmäßig Projekte bearbeitest wirst Du merken das C einfach die bessere Wahl ist. Z.B. wechsel ich teilweise von Projekt zu Projekt die Prozessor Familie. In ASM bedeutet das: alles noch mal schreiben. In BASIC bedeutet das: beten das es den BASIC Interpreter für den µC gibt. Und in C? Einfach Kopieren und eventuell an die Hardware / Compiler anpassen fertig. Außerdem gibt es kaum etwas was in C nicht genauso schell und platzsparend geschrieben werden kann wie in ASM. ASM ist nur in ausnahmen mal interessant (zB. RTOS Kontext switch), aber wer schreibt schon so was selber. Und wenn ich schon höre "BASCOM forever" wird mir schlecht, warum nicht gleich Forth? Wäre immerhin noch das bessere elend. Und wenn Du es ganz wild treiben willst, kannst Du ja alles VHDL machen. Damit geht auch alles zu bauen.
ASM ist schon ne feine sache - empfehlenswert für einsteiger. und herrlich nahe an der hardware aber schlecht zu portieren. C ist schöner zu programmieren und auch recht nahe am controller. basic hat imho garnix in der nähe eines µC verloren. pumpkin
ich seh das ganz pragmatisch: C (und von mir aus auch Bascom) nehmen mir soviel Arbeit ab, dass ich gar nicht drüber nachdenke, ob ich das in asm programmiere (mache ich schon seit Jahren nicht mehr). Trotzdem nehme ich mir mein Controllerchen zur Brust und möchte zumindest in Grundzügen verstehen, wie der tickt. Und schau mir auch regelmässig die erzeugten Assembler-files an, einfach um zu sehen, wie das vom Compiler gelöst wurde. Es bringt mir auch nichts, eine rasend schnelle, in mühevoller Arbeit optimierte (und mehrfach reparierte) asm-Routine zu haben, die ein Problem doppelt so schnell löst, danach aber den MC in die Warteschleife schicke und der drauf giert, wieder was zu tun zu bekommen, 99% der Zeit ist aber warten angesagt. Dann lieber nur 98% warten, aber in 5min programmiert statt in mehreren Nächten. Und wer schon mal komplexere Rechnungen gemacht hat, wird umso mehr die Annehmlichkeiten des Compilers zu schätzen wissen. Man kann sich nämlich in der Regel drauf verlassen, dass das Problem so gelöst wird, wie man es in einer Zeile hingeschrieben hat, statt sich in ellenlangen asm-files zu verirren und sich mit fremdem code oft dubioser Herkunft herumärgern zu müssen. Wer von den asm-Programmieren schreibt denn wirklich seine math. Funktionen selber? Ne, da wird copy & paste betrieben, in der Hoffnung, dass alles funktioniert und man sich auf die Schulter klopfen kann: Ich habs in asm programmiert! Den grössten Vorteil sehe ich allerdings in der Speichernutzung/Variablenverwaltung. Kaum ein Mensch kann derart ökonisch mit RAM umgehen wie ein guter Compiler. Und das Schönste: beachtet man einige wenige Regeln, gibts keine Konflikte, wogegen der Assemblerprogrammierer ständig getrieben ist zwischen Optimierung, Verschwendung und Fehlern.
@Crazy Horse, "Kaum ein Mensch kann derart ökonisch mit RAM umgehen wie ein guter Compiler", tja ich kann ein einzelnes Bit als Speicherstelle benutzen und verwalten, Dein Compiler nicht, C will minimum ein Byte haben !! Sowviel dazu Im übrrigen lassen sich viele Berechnungen in Tabellen ablegen. wer in ASM wirklich viel rechnet ist selber schuld
Hi Steff, http://www.silabs.com/tgwWebApp/public/web_content/products/Microcontrollers/en/MCU_Automotive_Solutions.htm http://www.keil.com/dd/search_parm.asp Nenn mir irgendein Controller Derivat welches durch mehr Hersteller supported wird (ca. 600 Stk. beim 8x51). C oder ASM ist eher eine philosophische Diskussion. Beides ist ein muß !!! Nicht du, sondern deine zukünftigen Auftraggeber entscheiden. Ebenso öffnet C dir den Zugang zu "allen" Controllern. Ich beschäftige mich nicht nur mit den 8x51 Typen.
Da muss ich Joe recht geben, das entscheidet dein Arbeitgeber denn schließlich ist es ja auch eine Preisfrage.
Im Grunde genommen ist die Frage "C oder Assembler" in sich schon ein Entscheidungsfehler - es sollte vielmehr lauten "C und Assembler". Einerseits hilft Assembler-Verständnis beim C-Lernen (gerade beim Verstehen von Pointern ...), andererseits ist Assembler-Verständnis beim Debuggen auch sehr hilfreich, um zu verstehen, was irgendwo schiefgeht. Auch ist es hilfreich, um zu verstehen, warum manche C-Konstrukte auf manchen Prozessoren eher ineffektiv sind (ein Prozessor ohne Barrelshifter braucht halt zum Schieben um mehr als eine Bitposition proportional mehr Zeit ...). Also: Beides.
aber beides gleichzeitig halte ich persönlich nicht für sinnvoll. ich habe erst C auf PC's programmiert, dann ASM auf nem 8051 derivat. der umstieg auf C im AVR hat reibungslos geklappt und hat keinerlei kopfschmerzen gemacht - einzig die nicht ANSI konformen funktionen sind halt neu. am ende kann man wohl sagen dass es relativ egal ist wie und wo man einsteigt - solange man verstanden hat wie ein µC im grunde funktioniert. pumpkin
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.