PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anleitung zum modularen Experimentiersystem ist fertig !!!



talentraspel_kai
27.12.2004, 23:26
Hallo zusammen,

es bist geschafft:

Für mein modulares Experimentiersystem auf der Basis des AT90S2313 habe ich nun eine umfangreiche Anleitung (über 70 Seiten) mit Beschreibung, Aufbau und Inbetriebnahme sowie Programmierung anhand von Beispielen in C, Assembler und Basic fertiggestellt.

Abrufbar ist die Anleitung unter www.talentraspel.de/portal/index.php?id=103&type=1 in der Rubrik "Dokumentation und Downloads".

Vielleicht hilft es dem ein oder anderen beim Einstieg in die Welt der AVR-Mkrocontroller oder bei der Auswahl bzw. dem Erlernen einer der o. a. Programmiersprachen.

Für Feedback wäre ich natürlich dankbar.


Grüße,
Kai.

pebisoft
28.12.2004, 10:12
basic oder c.
ich höre von dir kritische worte über bascom gegenüber c.
ich vermute , du hast in bascom noch nicht ausführlich programmiert.
auch in bascom kann ich noch fehlende zeitkritische routinen in "asm" schreiben.
da aber in bascom fast alle zeitkritischen routinen schon in bascom integriert sind,
wird das problem fast nicht auftauchen. ich kann alle bauteile ansprechen mit basic-routinen.
(alle ultraschallmodule, ir-sensoren, pc-tastaturen, pc-mous,ir-fernbedienungen,
i2c-programmierung,lcd-darstellung,evtl noch mehr rs232-schnittstellen auf softwarebasis,
evtl noch mehr i2c-schnittstellen auf softwarebasis, kameramodule usw...usw...).
inc geht die sucherei erst los, das eine funktioniert nicht und das andere funktioniert nicht.
von den fertigen routinen ganz zu schweigen, wenn ich sehe ,wie ätzend schwer es ist
eine einfaches display anzusprechen und text auszugeben der evtl noch über die rs232
schnittstelle empfangen werden soll und an einem tsop1736 zur steuerung des roboters weitergeleitet
wird. bevor das projekt läuft vergehen monate erst einmal, um die "make-datei" zu verstehen,
da gibt es jetzt schon bücher drüber, muss man sich mal vorstellen.
in bascom kann ich mich voll und ganz auf mein elektronisches projekt konzentrieren.
auf keinen fall kann ich einen c empfehlen, es ist ein hemmschuh im vorankommen
in der experiementierphase. wenn ein c-rpgrammierer soweit ist, um sein projekt
zu veröffentlichen, macht sich der bascom-programmierer schon an das 6. oder 7. projekt.
wer fortschritt haben möchte kommt an bascom(basic) nicht vorbei (avr,piaxe,c-control usw.).
mfg pebisoft

talentraspel_kai
28.12.2004, 11:23
Hallo pebisoft.

In der Anleitung zum Experimentiersystem habe ich bewußt die drei von mir
berücksichtigten Programmiersprachen (C, Assembler und Basic) neutral nebeneinander
gestellt. Die zu den Versuchen erstellten Programme wurden zunächst nicht optimiert,
damit man die Programmstrukturen besser vergleichen kann. So soll jedem ein
Einstieg seiner Wahl ermöglicht werden. Eine weitere Optimierung durch Spezialisten
der jeweiligen Programmiersprache ist natürlich möglich.

Der Vergleich von Programmiersprachen ist immer schwierig und wurde daher von mir in
einem gesonderten Text durchgeführt. Ich sehe bei allen o. a. Programmiersprachen
Vor- und Nachteile. Es muss also jeder für sich entscheiden, mit welcher Programmiersprache
er arbeiten will.

Prsönlich habe ich habe bei der Programmierung der AVR-Mikrocontroller sehr gute Erfahrungen
mit C (WinAVR) gemacht. Zusätzlich entwickle ich noch die ein oder andere extrem zeitkritische
Anwendung direkt in Assembler und benutze dabei Atmels AVR Studio 4. Assembler und C bilden
eine gute Mischung, da C als hardwarenahe Hochsprache hier viel Flexibilität bietet. Außerdem
sind gerade die AVR-Mikrocontroller bzgl. Befehlssatz und Architektur für C optimiert. Gängige
C-Compiler können dadurch sehr guten Code erzeugen.

Mit BASCOM-AVR (einige Wochen) habe ich mich tatsächlich noch nicht so intentiv beschäftigt, wie mit
C oder Assembler (einige Jahre). Im Wesentlichen habe ich mich in BASCOM-AVR eingearbeitet, um die
Anleitung auch auf Basic ausdehnen zu können. In diesem Zusammenhang kann ich durchaus bestätigen,
das der Einsteig mit BASCOM-AVR recht einfach ist. Auf der anderen Seite wird natürlich alles
"gekapselt", man weiss eigentlich nicht mehr genau was dann hinterher passiert. Dies ist bei
der Mikrocontrollerprogrammierung nicht immer von Vorteil.

Bei der Arbeit mit BASCOM-AVR fiel mir dann allerdings ein Punkt auf,
den ich von einer Entwicklungsumgebung nicht erwartet hätte:

BASCOM-AVR kann keine Ausdrücke verarbeiten. D. h. ich muss alle meine Berechungen
in einzelne Schritte mit jeweils zwei Operatoren zerlegen.

Beispiel:
'E = A1 + A2 + A3

E = A1 + A2
E = E + A3

Dies entspricht dann in etwa der Vorgehensweise bei der Assemblerprogrammierung. Gerade bei
einem Compiler gehört es m. E. aber unbedingt dazu, das er Ausdrücke übersetzen kann.

Diese Unzulänglichkeit empfinde ich als echtes Problem, daher werde ich z. Zt. keine größeren
Programme mehr mit BASCOM-AVR angehen. U. U. behebt MCS-Electronic dieses Problem mal in einer neuen Version.

Aufgrund meiner Erfahrung empfehle ich weitehin, über kurz oder lang die Programmiersprache C
zu lernen. Besonders bei komplexen Echtzeitprojekten mit industriellem Anspruch kommt man
dort einfach am weitesten.

Am meisten Sinn macht es jedoch, die verschiedenen Programmiersprachen alle im persönlichen
Portfolio zu haben, denn:

"Die Wahl der zu verwendenden Programmiersprache hängt immer von der geplanten Anwendung ab."


Grüße,
Kai.

zwerg1
28.12.2004, 11:23
Echt tolle Sache

nur eine Stückliste wäre nicht schlecht

zwerg1
28.12.2004, 11:28
Sorry hab schon die Stückliste gefunden.
(war nur noch nicht so weit unten)

talentraspel_kai
28.12.2004, 11:33
Hallo zwerg1,

die Stückliste kann dem Schaltplan oder der Aufbauanleitung entnommen werden. Alternativ kann auch der Bausatz mit Platine erworben werden.

Eine detaillierte Einkaufsliste zum Bausatz oder das Layout zur Eigenfertigung der Platinen werde ich nicht publizieren.

Wer das System aufbauen möchte, sollte zumindest durch Kauf von Bausatz oder Platine etwas zur finanziellen Fortführung des Projektes beitragen. Ich habe dort schon erheblich investiert und kalkuliere alles zum Selbstkostenpreis, um hier Einsteigern eine schöne und preiswerte Plattform zu bieten.


Grüße,
Kai.

talentraspel_kai
28.12.2004, 11:35
Hallo zwerg1,

da habe ich wohl getippt, während du weitergelesen hast.


Grüße,
Kai.

zwerg1
28.12.2004, 13:55
du Kai kannst du mir mal eine Ätzvorlage des Basismodules zukommen lassen? Ich bin ein totaler Anfänger und ich kann das halt nicht so gut von dem Schatplan eine Ätzvorlage zu zeichnen. Hab das schon öfters probiert, aht aber nie so richtig hingehaun.
Wäre echt nett von dir.

roboter
28.12.2004, 14:44
das Layout zur Eigenfertigung der Platinen werde ich nicht publizieren


du Kai kannst du mir mal eine Ätzvorlage des Basismodules zukommen lassen?

pebisoft
28.12.2004, 16:30
in der industrie gebe ich dem c den vorrang, aber nicht auf der hobbyebene wo es um das kennenlernen der elektronischen baugrupppen geht.
hier ist fundamental wichtig nicht mit der sprache mehr zeit zu verschwenden als mit dem eigentlichen elektronischen versuchsziel.
wenn eine "make-datei" schon 10kbyte verschlingt, nur zum compilieren, das ist etwas abartig für eine sprache. wenn man den hexcode von bascom analysiert, kommt man zum ergebnis, das die ausdrücke in der gleichen weise angelegt sind wie bei c, obwohl diese einzeln eingegeben werden müssen.
mfg pebisoft

talentraspel_kai
29.12.2004, 11:36
Hallo pebisoft.

Ich freue mich über die sachliche Diskussion über Programmiersprachen. Das findet man selten, da dieses Thema häufig einen "Glaubenskrieg" auslöst.

Wie duch richtig bemerkst, hat C hat in der Industrie sicher den Vorrang. Mit dem Wunsch im Hobbybereich schnelle Erfolgserlebnisse zu erzielen hast du aber natürlich auch recht. Da bin ich auch deiner Meinung, das man mit BASCOM-AVR gut einsteigen kann.

Allerdings sollte man aber einer gewissen Komplexitätstufe der Programme berücksichtigen, dass dann eine "profesionelle" Programmiersprache wie C besser geeignet ist. Es kann ja jeder selber entscheiden, ob er zusätzlich zu Basic auch mal etwas anderes probiert. Natürlich ist der Einstieg in C komplizierter, wenn man es braucht kann man dann aber auch mehr damit machen.

Deinen Kommentar zu Makefiles möchte ich hier aber dennoch etwas relativieren:

Ein C-Compiler übersetzt ein u. U. aus mehreren Dateien bestehendes Projekt durch Compilieren, Assemblieren und Linken. Damit das unter Berücksichtigung der Abhängigkeiten automatisch und fehlerfrei gelingt, wird mit dem Makefile und dem zugehörigen Programm "make" der ganze Ablauf gesteuert. Das ist ein seit ca. 30 Jahre existierender Standard, der aus der UNIX-Welt kommt.

Zum Glück braucht man bei WinAVR sich darum nicht viel kümmern. Erstens gibt es ein schickes Tools, um die Makefiles zu generieren. Und Zweitens braucht man für einfache Programme sowieso nur den Prozessortyp und den Programmnamen anzupassen. Der Rest vom Makefile kann man getrost als Blackbox vergessen.

Hast Du eigentlich mit C schon mal was Grösseres gemacht? Und was BASCOM-AVR anbetrifft, hast du eine Homepage, auf der man etwas von deinen Projekten ansehen kann?


Grüße,
Kai.

talentraspel_kai
29.12.2004, 11:38
Hallo zwerg1,

bitte habe Verständnis dafür, das ich keine Layouts herausgebe. Ich muss die Platinen in etwas grösserer Stückzahl anfertigen lassen, um auf die niedrigen Preise zu kommen. Dabei gehe ich finanziell in Vorlage.

Ich möchte das Projekt für Einsteiger "pushen", daher muss ich darauf achten, das ich die hergestellten Platinen auch wieder loswerde. Trotzdem bemühe ich mich darum, alles möglichst preiswert anzubieten.

Im E-Shop kannst du die Platinen zusammen für 14,20 Euro bekommen. Das ist m. E. auch ein guter Preis.

Grüße,
Kai.