Hallo, ich programmiere Bereits in den Sprachen PHP, JavaScript und ObjectiveC und wollte mich nun auch mit dem Thema µC Programmierung befassen. Ich hab soweit auch schon alles hier (AVR Protoboards und Software) aber das eigentliche was ich fragen möchte ist folgendes: Was würdet Ihr mir raten, mit welcher Programmiersprache sollte ich am Besten "anfangen" bzw. arbeiten? Einerseits würde ich gerne C zum programmieren verwenden (da ich dort soweit schon mit der Systematik vertraut bin) aber ich lese immer wieder dass es besser wäre in Assembler zu programmieren bzw. zu erlernen...? Ist das bei der aktuellen Software immer noch so, oder kann man mittlerweile getrost bei C bleiben? Ihr würdet mir hierbei sehr helfen! :) Viele Grüße, Alex
Assembler hilft dir sehr zu verstehen, wie der Controller überhaupt funktioniert. Ist auch nicht schwer zu erlernen. Fang erstmal mit ASM an bis du einen grundsätzlichen Überblick hast, dann spricht nichts mehr gegen C. Viel Spaß :)
Hallo Alex, also in C ist es quasi Standard. Alle grossen uC mit komplexen Aufgaben kann man gut in C programmieren. Aus persönlicher Erfahrung finde ich es immer gut auch Assembler zu können. Viele zeitkritische Dinge sind in ASM besser bzw. einfacher. Assembler ist nun mal die unterste Ebene. Grüsse aus Berlin, Rene
Ich spreche nun mal rein für mich. C habe ich mir schon einige male angesehen, aber so richtig warm konnte ich damit nie werden. Im windows Umfeld programmiere ich mit C#, was einem durch das Framework und die starke Typisierung und Kapselung sehr schnell, sehr guten Code schreiben lässt. Als ich dann mit den µC angefangen habe ( gute 2 Monate ) war der entschluss schnell zu Assembler gefasst. Auch ist ein Grund, warum ich Assembler gewählt habe, das ich eben mit C selbst nie so recht klar gekommen bin. Mittlerweile muss ich sagen, ist mein Entschluss bestätigt, das es kein Fehler ist, wenn man sich mit dem Assembler beschäftigt. Da ist man sehr schnell gezwungen sich doch noch ein Stück Tiefer in die Architektur des µC einzuarbeiten, als unter C mit seinen fertigen Bibliotheken. Also klares Fazit. Wenn man den µC verstehen lernen möchte, dann kommt man um Assembler nicht herum. Es wird am Anfang sicher recht holprig werden, aber irgendwann platzt der Knoten auf. So ist es mir vor ein paar Tagen gegangen. Was auch hilft, wenn man sich geziehlt einmal die Beiträge in Assembler im Forum durchliest. Je mehr man liest, desto schneller wird man mit dem Programmierstil in Assembler klar kommen. Hier noch ein Tutorial, was ich Dir dann ans Herz legen möchte, das man sich das mal durchliest: http://www.avr-asm-tutorial.net/avr_de/index.html MFG Stephan
ich bin da eher ein "C" fürsprecher wenn man seinen eigenen stil hat kann man so gut wie jeglichste funktionen auf verschiedenen µC wiederverwerten... Sei es irgendwelche steuerungen oder menüs ..blubb in ASM finde ich das extrem schwer .. allein weil der befehlssatz von AVR zu cortex oder nen Blackfin total unterschiedlich ist. in C ... reinkopieren fertig .. läuft :) außer hardwarespezifische dinge eben .. aber diese muss man eh überall anpassen manche scheinen sich hier an einem AVR oder so festzubeißen ich bin eher ein freund universeller natur ^^ ich habe keine probleme damit von AVR zu Cortex M0 . M4 bis ARM + linux zu springen alles mit "C" Frage ist immer was man leistungstechnisch braucht ... möchte man auch mal mit linux spielen ist der AVR nicht geeignet Ich würde ASM nur zum verstehen nutzen um kleine architekturen kennenzulernen aber sobald man das inne hat würd ich SOFORT auf C wechseln. ASM ist sicher auch nützlich .. aber wer schonmal nen mega64 oder 128 in ASM vollgeklatscht hat weiß das sowas verdammt schnell unübersichtlich werden kann und wenn man mal nen TCP/IP stack in ASM hat will man den sicher nicht nochmal in ASM für jeden anderen controller schreiben. in C ist sowas relativ einfach austauschbar JA der code is größer wenn man universell schreibt .. aber in zeiten wo ein Cortex M0 mit 64k flash billige rist wie ein Mega8 .. stell ich mir solche fragen garnicht mehr für mich ist der AVR eigentlich schon gestorben... zu wenig features , zu teuer PS: ich würde mir nen Cortex M0 oder M3 board holen .. und damit lernen/spielen gerade wenn man weiß wie C funktioniert .. warum dann noch ASM lernen zumal jeder conteroller eigene ASM befehle hat ..
Hallo, kann meinem Vorredner in den meisten Punkten zustimmen. Ich würde, wenn man z.B. einen AVR verwendet nicht auf die bestehenden Bibliotheken zurückgreifen, sondern eigene schreiben. Das hat dann 2 Effekte: 1. Man lernt durch Datenblatt lesen den Controller kennen. 2. Man kommt mit C klar. Wenn man später dann andere Controller verwendet, kann man C und ist mit einem allgemeinen Verständnis für uController gesegnet. Und so groß sind die unterschiede zwischen den Controllern nicht. Es ist imho einfacher die Register im Datenblatt nachzuschlagen, als ASM Befehle neu zu lernen. Und die Entwickler der Compiler haben so nebenbei auch ihre Lebensberechtigung ;) Grüße
Oh wow, so viele Antworten! :) Ich dachte ich würde per Email benachrichtigt werden, wenn mir jemand antwortet... Vielen Dank an alle, ich glaub ich weis nun wie ich "vorgehe". Grüße, Alex
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.