Forum: www.mikrocontroller.net Bitte in den Tutorien auf Zusammenhang achten!


von Karl H. (kbuchegg)


Lesenswert?

Ich habe gerade gesehen, dass im Assembler Tutorium LCD Routinen in C 
eingefügt wurden.

Ich finde es natürlich gut, wenn meherer Leute am Tutorium mitarbeiten, 
jedoch sollte schon ein bischen auf Zusammenhänge geachtet werden. Das 
Assembler Tutorium ist ausdrücklich ein Tutorium für Assembler und 
nicht für C. Für C gibt es das C-Tutorium und dort gehören diese 
Funktionen auch hin!

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Mea Culpa - Ich habe es verbrochen!

Warum?

Zu der damaligen Zeit gab es kein LCD Abschnitt im C Tutorial, aber es 
gab viele Anfragen im Forum, davon hatten einige die Probleme mit dem 
ASM Code und fragten nach C Code.

Statt den guten, ausführlichen LCD Basisteil (Controller, Funktionen, 
Portleitungen...) aus dem AVR Tutorial 1:1 zu kopieren und damit eine 2. 
Baustelle aufzumachen, die auch gewartet werden will, hatte ich mich 
damals entschlossen, eine simple 1:1 Umsetzung ASM => C einzufügen.

Ich gebe zu, dass ich den kleinen Hintergedanken hatte, den ASMlern die 
Furcht vor C und umgekehrt zu nehmen und einen weiteren Lerneffekt 
anzubieten ;-)

Im Laufe der Zeit haben weitere Mitarbeiter im Wiki den C-Teil ergänzt 
und auch mit Makros portabler geschrieben. Möglicherweise ist dadurch 
die Ursprungsidee (Basiswissen + einfache Implementierungen) ausgeufert.

Mit der Verschiebung in das C-Tutorial kann ich auch leben. Ich fände es 
schön, wenn "meine" Arbeit nicht ganz verloren wäre und z.B. im 
ASM-Tutorial ein Hinweis (Verlinkung) ala "Und so sähe es in C aus..." 
stehen würde.

von Gast (Gast)


Lesenswert?

Bitte unbedingt so lassen! Ich fand das Assembler-lernen viel leichter 
wenn man ein 1:1 Beispiel hat! Vor allem für mich als Umsteiger war das 
alles so viel leichter.

Danke dir Stefan B.!

von Hannes L. (hannes)


Lesenswert?

Warum nicht gleich die AVR-Tutorien zusammenschmeißen?

- Beschreibung der Problemstellung bzw. Aufgabe
- Realisierung in Worten und Zeichnungen für den Bastler
- Realisierung in Formeln und Algorithmen für den Theoretiker
- Realisierung in Assembler
- Realisierung in C
- Realisierung in Pascal
- Realisierung in BASCOM

;-)

...

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Das wäre gar nicht so schlecht, die Beispiele parallel in C und 
Assembler vorzustellen. Bei den meisten Themen geht es ja um den 
Controller, nicht um spezielle Assemblereigenheiten. Was meint Karl 
Heinz?

von Hannes L. (hannes)


Lesenswert?

Da trollt man (ich) nun mal rum... Und dann??

Ich hatte das eigentlich als Provokation geschrieben, aber da ist 
wirklich was dran...

...

von Karl H. (kbuchegg)


Lesenswert?

Andreas Schwarz wrote:
> Das wäre gar nicht so schlecht, die Beispiele parallel in C und
> Assembler vorzustellen. Bei den meisten Themen geht es ja um den
> Controller, nicht um spezielle Assemblereigenheiten. Was meint Karl
> Heinz?

Find ich grundsätzlich ok.

Das Problem ist doch folgendes:
Man kann eine Programmiersprache nicht ohne Beispiele
erklären. Und das Problem in der µC Welt, wie sie sich hier
präsentiert, ist es nunmal, daß ohne Peripherie nichts geht.
Der reine Prozessor ist nun mal relativ uninteressant. Es macht
auch keinen Sinn, da jetzt alle Befehle einzeln durchzukauen
ohne sie in einem halbwegs sinnvollem Kontext in Aktion zu zeigen.
Dazu braucht es aber natürlich ausführliche Beschreibungen dieser
Peripherie, sei es ADC oder LCD, sei es Tastenfeld oder
Schieberegister oder ...
Und genau hier drückt der Schuh: Der Peripherie ist es ja
wieder völlig egal in welcher Sprache programmiert wird, da
ist das Verständnis der Funktionsweise der Geräte viel wichtiger.
Habe ich dieses Verständnis, dann kann ich das Ding in jeder
Sprache programmieren.

Das sog. Assembler Tutorial erfüllt zur Zeit, meinem Verständnis
nach, 3 Aufgaben

1) zum einen natürlich sukzessive die Möglichkeiten im Befehlssatz
   der CPU aufzuzeigen

2) zum andern halbwegs sinnvolle Programme mit diesem Befehssatz
   zu schreiben und dadurch auch grundlegende Verfahren aufzuzeigen

3) und damit das auch in einen vernünftigen Kontext passieren kann,
   muss natürlich auch die Hardware zumindest in den wichtigsten
   Grundzügen angesprochen werden.

Ich denke auch nicht, dass es sinnvoll ist in einem Tutorium
diese 3 Bereiche zu trennen. Genauso wie es nicht sinnvoll ist
einen Sprachschüler im ersten Jahr nur Vokabeln pauken zu lassen.

D.h. wir haben jetzt 2 Tutorien, eines in C und eines in
Assembler, die sich aber über weite Strecken den Inhalt teilen
sollten. Nämlich genau dort, wo es im eigentlichen Sinne nicht
mehr um die Programmiersprache an sich sondern um grundlegende
Verfahren, Algorithmen und Funktionsweisen von Peripherie geht.

von Fallout-Boy (Gast)


Lesenswert?

Hallo,

ich hätte auch noch eine Frage zu dem Tutorial. Wie weit  kann ich das 
Tutorial eigentlich mit dem STK500 bearbeiten und ab wo muss  ich dann 
aufrüsten auf STK501 etc?

Was heißt eigentlich MEA CULPA? War ja nicht auf dem Gymnasium.

von Andrew (Gast)


Lesenswert?


von Hannes L. (hannes)


Lesenswert?

Fallout-Boy wrote:
> Hallo,
>
> ich hätte auch noch eine Frage zu dem Tutorial. Wie weit  kann ich das
> Tutorial eigentlich mit dem STK500 bearbeiten und ab wo muss  ich dann
> aufrüsten auf STK501 etc?

Das STK500 unterstützt neben einer Reihe anderer AVRs auch den Mega8 im 
DIL-Gehäuse. Das Tutorial benutzt hauptsächlich den Mega8. Somit ist das 
gesamte Tutorial mit dem STK500 und einigen extern angeschlossenen 
Komponenten (z.B. LCD) realisierbar. Natürlich ist es nicht immer 
sinnvoll, alles mit 8 Tastern und 8 LEDs, jeweils über ein 
mitgeliefertes 10-poliges Flachbandkabel angeschlossen, realisieren zu 
wollen. Da braucht es schon ein paar zusätzliche Einzel-Strippen und ein 
paar externe Bauteilträger (Lochrasterplatine, Steckbrett).

...

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
Noch kein Account? Hier anmelden.