Hi Leute! Ich habe in der Uni erstmalig mit µControllern was zu tun gehabt und habe großes Interesse in die kleinen Teile bekommen. Wir hatten ein Praktikum und haben dort in Assembler programmiert. Das ging dann so, dass wir geguckt haben, was wir machen wollen und haben wir aus dem Datenblatt die OP Codes und so benutzt. Wie es der Zufall so will benutzt der Fachbereich, bei dem ich als Hiwi arbeite auch zunehmend µC, allerdings den STM32. Ich möchte mich da einarbeiten, mir steht es aber erstmal frei, wie ich das Teil programmiere, also ob direkt in Assembler, wie wir es in der Uni gemacht haben, oder in C mit der riesigen Bibliothek, die ST bereitstellt, oder eventuell ein Mix aus beidem? Ich habe es schon gerne, wenn ich weiß, was der Controller so macht, habe das Gefühl, dass die Libs das etwas verschleiern... Was würdet ihr denn für den Anfang empfehlen, könnt ihr mir da ein paar Tips geben? Mfg, Jan
Jan K. schrieb: > Was würdet ihr denn für den Anfang empfehlen, könnt ihr mir da ein paar > Tips geben? Dir für zu Hause nen AVR / PIC zus besorgen und den zu befeuern und Routine aufbauen. Gleich auf nen STM32 loszugehen, und vor allem noch in Assembler, könnte dir schnell die Lust rauben mit µC weiterzumachen. Welchen µC hast du in deinem Praktikum denn beim Wickel gehabt? Gruß Skriptkiddy
Im Praktikum hatten wir nen MSP430. Ich muss das Dingen ja nicht in Assembler programmieren, ist vermutlich eh etwas komplex ;) Wir haben halt nur im Praktikum in Assembler gebastelt. Ich kann C++ und C programmieren, aber klar, dass ich mich für den µC umstellen muss. Wie geht man denn beim STM32 am ehesten vor, wenn man z.B. einen Port einschalten möchte? Schreibe ich dann direkt in das jeweilige Register, oder nehme ich besser die vorgefertigen Funktionen? Oder wird der mich definitiv fürn Anfang erschlagen?
Jan K. schrieb: > Oder wird der mich definitiv fürn Anfang erschlagen? Wahrscheinlich. Zu komplex für den Anfang. Zu viele Möglichkeiten, zu viel zu beachten. Solch einen 32-Bitter programmiert man nicht in Assembler. Nicht wenn man es vermeiden kann. Die kommen ganz gut mit C und C++ zurecht.
A. K. schrieb: > Solch einen 32-Bitter programmiert man nicht in Assembler. Nicht wenn > man es vermeiden kann. Die kommen ganz gut mit C und C++ zurecht. Stimmt. Die Dinger sind üblicherweise so komplex, dass die in der Regel mit einer fertigen C/C++ Bibliothek vom Hersteller kommen. Ich seh das bei Assembler so: Um produktiv damit zu arbeiten muss man Purist sein. Ansonsten wirds zu schnell unübersichtlich. Aber trotzdem sollte man das mal gemacht haben. Da lernt man ganz gut die Abläufe in so nem Prozessor. Hast du ja auch gemacht am MSP430. An einem STM32 würde ich damit aber gar nicht erst anfangen.
Simon K. schrieb: > Stimmt. Die Dinger sind üblicherweise so komplex, dass die in der Regel > mit einer fertigen C/C++ Bibliothek vom Hersteller kommen. Sicher. Allerdings kenne ich diese Bibliothek in diesem Fall ein bisschen. Und besonders ihre Dokumentation. Wenn man das so nennen kann. Ein Timer vom AVR ist auf Registerebene erheblich umgänglicher als einer vom STM32 über diese Bibliothek. Das erste Erfolgserlebnis ist deutlich leichter zu kriegen, wenns nicht bloss darum geht, in halbem Blindflug durch Sample-Code zu stolpern, sondern selber welchen zu schreiben.
Meiner Meinung nach kann man Assembler fast immer vermeiden, schon aus Gruenden der Produktivitaet und Wiederverwendbarkeit des Codes. Das war der eigentliche Grund warum Programmiersprachen wie C entstanden sind. Ich schreibe alles in C und wenn's mal kritisch zugeht lasse ich mir den Asm-Code vom Compiler erstellen mache es da passend un binde es als Inline Asm in den C Code ein. Wenn Du genau wissen willst was der Controller macht, dann musst Du ja nicht die Libs vom Hersteller verwenden, sondern kannst so nach und nach Deine eigenen bauen. Doch wie meine Vorredner schon schrieben, da gleich mit einem 32 Bitter anzufangen ist wie als Fussgaenger den K2 besteigen zu wollen. Ein guter Rat ist, beschaeftige Dich mal mit den Werkzeugen der Programmierung. Ich meine damit das was hinter den Kulissen abgeht. Ich habe keine Ahnung was Du darunter verstehst wenn Du sagst Du kannst C und C++, aber wenn einer mal ein bischen was mit Visual Studio in C oder C++ Programmiert hat, dann ist er noch Meilenweit davon entfernt zu wissen was C Programmierung ist. Lies mal ein bisschen in der Dokumentation von gnumake, gcc und binutils. Die sind echt gut geschrieben. Und wenn Du alles verstanden hast, dann wirst Du sehen das man mit C genau so viel controlle haben kann wie mit Assembler nur eben viel Komfortabler. Ju
@Jan K., hast du vielleicht Unterlagen zu dem MSP430 und den Sachen die ihr damit im Praktikum gemacht habt?
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.