Archiv verlassen und diese Seite im Standarddesign anzeigen : Einsteiger in Mikrocontroller
Hi,
hab gesucht und gesucht und bin dann auf dieses Forum hier gestoßen. Hab mir auch schon einige Threads hier durchgelesen, aber irgendwie fehlt mir dazu trotzdem noch das nötige Wissen.
Also was ich machen möchte, klingt eigentlich ganz einfach. Damals in der Schule haben wir mit Assembler LEDs angesteuert und diese zum leuchten gebracht und auch wieder deaktiviert. Da ich mich damals aber weniger dafür interessiert habe, wollt ich nun loslegen und zu hause damit ein wenig rumprobieren. Also ich bräuchte eine Platine mit LEDs die ich (irgendwie) an meinen Rechner anschließe und dann mit Assemblerbefehlen die LED ansteuer. Allerdings hab ich leider keine Ahnung, was ich da genau für eine Platine brauche, hab schon bei ebay gesucht und das hier gefunden:
http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&category=12068&item=5793564324&rd=1&ssPageName=WDVW
Wäre das denn das richtige für mein Vorhaben?
Und wie genau schließe ich das dann an? Gibt es da auch eine Möglichkeit über USB? (wenn nicht ist auch egal, parallel oder seriell geht auch)
Sorry, aber bin in dem Gebiet noch ein totaler Neuling, also bitte dieses beim Antworten berücksichtigen ;)
Gruß
Thomas
[edit] Achja, hab auch schon Platinen mit 3 LEDs und so gesehen, aber das wär mir eigentlich zu wenig. 7-10 LEDs sollte es schon haben. Wäre auch bereit, mir das selbst zusammenzubasteln, aber wie gesagt, keine Ahnung :( aber man lernt ja nie aus.
Hi!
Benutz mal die Suche. Solche Fragen wurden schon oft beantwortet.
Ich würd dir das Board von myavr.de empfehlen. (sehr günstig)
Wenn du erstmal LED's leuchten lassen willst ist Assembler genau das richtige.
Schau auch mal auf http://www.mikrocontroller.net
Gruß,
Mehto
Hi,
erstmal danke für die Antwort. Hab ja auch hier schon gesucht, aber wie schon gesagt, fehlt mir das nötige Wissen, um mich in den anderen Threads zurechtzufinden.
Meinst du das Board hier: http://www.myavr.de/shop/artikel.php?artID=4
Allerdings hat dieses Board ja nur 3 LEDs. Könnte man das denn erweitern?
Und wie es aussieht, kann man es ja einfach über Seriell oder Parallel an den PC anschließen, oder?
Hi,
Wenn Du löten kannst, bestell Dir den Myavr Bausatz + die Laborkarte auf die lötest Du dann 10 weitere Dioden mit einem Widerstand zwischen und fertig.
Die Parallele schnittstelle ist zum Programieren und die serielle zur Komunikation.
Gruß Sebastian
Die Parallele schnittstelle ist zum Programieren und die serielle zur Komunikation.
Das heißt für den Laien?
Also wenn ich programmiere, muss ich das an parallel anschließen und wenn ichs testen will, muss ich es an seriell anschließen, oder wie?
Also fürn Anfang würde ja auch erstmal das fertige Board reichen, kann ja dann immer noch mehr machen. Die Software von AVR kostet ja 100€, ich denke mal, dass man die nicht zwingend dafür braucht, oder? Wie kann ich denn anders noch das Board programmieren?
Gruß
Thomas
Die Software von AVR kostet ja 100?
AVR ist der Markenname, die Firma heißt Atmel
soweit ich weiß gibt es von denen mehrere Programme, es gibt auch kostenloses, mit dem man die AVRs programmieren kann, allerdings wird nur Assembler als Programmiersprache unterstützt
weiterhin gibts einen Basic-Dialekt namens Bascom, bei dem es eine Testversion gratis gibt und einen gcc-port namens avr-gcc, mit dem man C-Programme kompilieren kann
zum finalen Programmieren des AVRs verwendet man dann ein Programm wie Ponyprog o.Ä.
Assembler reicht mir ja.
Hab mal eben das Tutorial auf mikrocontroller.net überflogen. Da wird ja auch beschrieben, wie man einen AVR programmiert und ne LED zum Leuchten bringt. Allerdings wird dann hier: http://www.mikrocontroller.net/tutorial/io-basics noch mehr dran gebaut, wenn ich das richtig verstanden habe.
Also mal für ganz dumme. Ich schließe das AVRBoard an die parallele Schnittstelle an, aber wie sag ich ihm dann, dass er auf das Board zugreifen soll?
Mit der Parallelen beschreibst Du den µC also Programm zum Chip hin, oder auch Programm aus dem Chip wieder auslesen.
Die Serielle ist dazu gedacht, dem µC im laufendem Betrieb, Befehle , Werte usw zu übergeben, oder irgendwelche werte auslesen z.B. welche leds an sind .
Das muß aber erstmal Programmiert werden!
Hoffe, daß Du jetzt besser verstanden hast.
Für die Software brauchst Du nichts zu bezahlen es gibt avr-gcc womit Du den µC in C Programmieren kannst, mindestens 3 Freie Assembler und noch Bascom, wenn man den in Basic programmieren möchte.
Basic kostet was, es gibt da eine kostenlose Version womit du 2 kB glaub ich (bitte berichtigen wenns nicht stimmt) programmieren kannst.
Aber Da du Assembler verwenden willst, wie Du schon gesagt hast kostet das nichts.
Gruß Sebastian
Jahn Kohlhas
29.07.2005, 16:34
du kannst dir ja erst mal die DEMO vom myAVRWorkpad downladen... damit kannst du programmieren, übersetzen und flashen (brennen)
http://www.myavr.de/download.php
http://www.myavr.de/download/myAVR_Workpad_SE_demo.exe
und hier ne kurzanleitung
http://www.myavr.de/download/schnelleinstieg14.pdf
http://www.myavr.de/download/bascomavr14.pdf
ansonsten findest du auf www.mikrocontroller.net ein tutorial... das ist gut
gruß
Also mal für ganz dumme. Ich schließe das AVRBoard an die parallele Schnittstelle an, aber wie sag ich ihm dann, dass er auf das Board zugreifen soll?
Es wurde hier schon gesagt : Ponyprog, avrdude, uisp
Damit kannst Du den µC beschreiben
Edit: Das kommt immer gut, wenn alle auf einmal antworten O:)
Ok, danke für die schnelle Hilfe.
Ich brauch ja, wie ich den dem Tut seh noch mehr als nur das AVR Board, oder?
Also damit ich dann loslegen kann, brauch ich folgende Hardware, oder?
Das Board: http://www.myavr.de/shop/artikel.php?artID=4
Ein parallel Anschlusskabel: http://www.myavr.de/shop/artikel.php?artID=8
Ein serielles Kabel: http://www.myavr.de/shop/artikel.php?artID=7
Und eine 9 Volt Batterie.
So, die Software bekomm ich ja kostenlos aus dem Internet, mehr brauch ich dazu also nicht?
Wenn das der Fall ist, werd ich mir das dann mal bestellen.
Aber eine Frage hab ich noch. Wie sieht das ganze aus, wenn ich das am Notebook machen möchte? Denn da hab ich nur USB-Anschlüsse. Ist es damit auch möglich?
Jahn Kohlhas
29.07.2005, 16:49
nimm den Kabelsatz... da kommst du günstiger als wenn du die kabel einzeln kaufst ;-)
frag mal bei myAVR an... die müssen da ne lösung haben:
Peter Themsfeld
Öfters hier
Beitrag Verfasst am: 14.06.2005, 14:54 Antworten mit Zitat Nach oben
Hallo,
ich mach den Thread auch noch ein bisschen länegr
das Problem mit dem Notebook und dem fehlenden LPT-Port hatte ich auch, habe mich an die myAVR Hotline gewand und siehe da die haben das hier aus der Schublade gezaubert:
<<BILD>>
man muss nur noch einen Treiber für den FTDI chip installieren
Nicht so große Bilder direkt einbinden, das zerstört Forumstruktur. Habe es mal geändert
Admin
SprinterSB
29.07.2005, 16:49
Vergiss nicht das Netzteil.
Für USB gibt es Interface-Karten USB<->Parallel, USB<->Seriell, was aber bekanntermassen oft nicht unproblematisch ist. Versuch's erst mal am PC, als Neuling hast du da schon mit genug sachen rumzukämpfen, da musst du dir nicht noch USB aufhalsen.
Ok, den Kabelsatz hab ich auch noch grad gesehen *g*
Und mit dem Netzteil meinst du doch die 9V Batterie, die ich mithilfe einem 9V Batterie-Clips an das Board anschließe, oder?
Nein, mit einem Netzteil sparst du dir die Teuren 9V batterien.
Es gibt dann glaub ich sogar ein kommplettpaket mit allen Kabeln + Netzteil.
Gruß,
Mehto
Jahn Kohlhas
29.07.2005, 16:57
Batterie wird auf dauer zu teuer... so ein 9V Block kostet locker nen euro und der hält nicht lange durch wenn du viel experimentierst... es gibt irgendwo im shop nen netzteil...
im übrigen kann das myAVRWorkpad das myAVR-Board über den LPT mit spannung versorgen... für die LED-Experimente reicht das locker...
Axo, k, danke.
Werd dann mal schaun. :)
[edit]
Das Netzteil ist ja net teuer :o
http://www.myavr.de/shop/artikel.php?artID=25
Na denn, dankeschön :)
Nun müsst ich ja alles für den Start haben.
Gruß
Thomas
SprinterSB
29.07.2005, 17:00
Entweder Batterie oder das Netzteil von myavr. 6EUR ist kein schlechter Preis.
Hi, Thomas! :-)
Also ich habe mal alles hier in deinen Thread durchgelesen.
Ich habe aber nicht rausbekommen, was du genau machen willst.
Wenn es nur darum geht ein paar LED's zu leuchten zu bewegen und das über ein Programm, so ist ein Controllerboard nicht notwendig.
Ich selber hatte mir vor 2 Jahren mal schnell eine Testschaltung mit 8 LED's am Parallelport gebaut(hat später noch ein Diplomand für seine Arbeit verwendet(Schnittstellenprogrammierung)). Dafür haben Teile vielleicht 3 Euro gekostet.
Andere Schaltungen sind auch über com1 usw. leicht mach und baubar. Experimentierplatinen für den USB Port gibt es auch( z.B. bei Heise (c't aus den letzten Seiten direkt bei Verlag) usw.)
Schreib nochmal genau was du willst, dann kann ich dir einen Vorschlag machen oder einen Bauanleitung usw. machen.
Viele Grüße
Helge
Klar braucht man keinen Mikrocontroller um ein paar LED's leuchten zu lassen.
Aber das was Thomas vor hat ist der perfekte Einstieg in die Welt des Mikrocontrollers.
Dadurch lernt man den µC am besten kennen und kann sich dann langsam zu größeren Projekten vorarbeiten.
Einen beseren Einstieg gibt es eigentlich nicht.
Viele Einsteiger wollen ja immer jetzt und sofort einen Roboter programmieren, obwohl sie noch keinerlei Erfahrung mit Mikrocontroller haben. Klar das dann vielen Assembler viel zu schwehr erscheint.
Wenn man mit Assembler programmiert muss man sich mit dem µC auseinandersetzten, und das kann man am besten wenn man ersteinmal LED's zum leuchten bringt.
Viele Einsteiger sind viel zu bequem dafür und programmieren deshalb lieber in Bascom und wollen gleich einen Roboter bauen. Klar das dann viele scheitern und denen die Lust vergeht.
Du bist also mit deinen "LED's zum leuchten bringen" auf dem richtigen Weg ernstahft und Proffesionell Mikrocontroller programmieren.
Gruß,
Mehto
Die meisten wollen ja immer jetzt und sofort einen Roboter programmieren, obwohl sie noch keinerlei Erfahrung von Mikrocontroller haben.
Hehe, das kenn ich aus einem anderen Forum, wo es hauptsächlich ums Programmieren geht. Ich programmiere ja sonst in C++ mit DirectX und dann kommen auch immer solche Fragen wie "Wie kann ich einen 3D Shooter machen", najo, und das ist ja auch net ganz so einfach. Aber genuf OffTopic.
Also ich denk auch, dass das myavr Board sehr gut für mich geeignet ist. Ich hab mich auch noch ein wenig über die verschiedenen Assembersprachen informiert und auch gelesen, dass diese sich "stark" unterscheiden. Allerdings weiß ich nun nicht, wie stark sie sich unterscheiden. Denn bald fangen wir in der Berufsschule auch mit Assembler an und deshalb würd ich ja gerne die selbe Sprache benutzen.
Nun ist natürlich die Frage, ob sich diese Sprachen wirklich soooo stark unterscheiden oder ob einem jede Assemblersprache beim Erlernen einer anderen Assemblersprache hilfreich wäre.
Konkrete Frage: Unterscheiden sich nur die Befehle/Syntax oder auch die Länge des Quellcodes?
Was glaubt ihr denn, welche Sprache in den Berufsschulen benuzt werden?
Gruß
Thomas
Auf was für einer Berufsschule bist du denn?
Die Befehlssätze sind zum Teil leider unterschiedlich, aber der Vorgang bleibt glaub ich immer gleich. Ich kann dir das aber nicht genau sagen da ich leider keinerlei Ahnung von anderen Assembler Sprachen habe.
Gruß,
Mehto
Die Berufsschule heißt: "Oberstufenzentrum Informations- und Medizintechnik" in Berlin und ich mache eine Ausbildung als "Fachinformatiker in der Fachrichtung Anwendungsentwicklung".
Ist natürlich die Frage, ob man dann bei jeder Assemblersprache ganz von vorn anfangen muss zu lernen oder nicht.
Gruß
Thomas
SprinterSB
30.07.2005, 13:42
Eigentlich muss man mit Assembler immer 'von vorne' anfangen, wenn man auf eine neue Architektur umsteigt.
Selbst für ein und den selben Controller werden teilweise unterschiedliche Mnemonics oder andere Syntak/Semantik verwendet, üblicherweise wird aber die Notation verwendet, die ein Chip-Hersteller in seinen Datenblättern und Befehlsbeschreibungen verwendet.
Und zudem kommen noch andere Sachen hinzu wie Assembler-Direktiven für Sections, Alignment, Symbolnamen, Makros, etc. oder wie Kommentare eingeleitet werden und nicht zuletzt die bedienung des Assembler-Programmes selbst.
Assembler lernt man am besten mit der Befehlsbeschreibung des Herstellers, kleine Programme schreiben, andere -- möglichst gut dokumentierte -- Quellen anschauen oder gucken, was zB ein C-Compiler so ausspuckt.
Bei avr-gcc ist natürlich auch ein Assembler dabei, der avr-as.
Der ist vielleicht keine schlechte Wahl, denn im embedded-Bereich wird praktisch nicht mehr in Assembler programmiert, weil das zu fehlerträchtig ist und die Entwicklungszeiten zu lang sind.
Verbreiteter sind da Hochsprachen wie C, C++, Java, Ada, so dass es dir dann einfacher fällt auf den avr-gcc umzusteigen. Und gcc ist ein riesiges Werkzeug, der für praktisch auf alle heute üblichen Zielarchitekturen portiert ist: AVR, XC, Tricore, PowerPC, MSP, ARM, i386, M68000, ...
Gruß, Johann
Danke erstrmal für die ausführliche Antwort.
Das heißt also dann, dass es egal ist, mit wechem Assembler ich anfange, denn das Umsteigen fällt immer schwer?
Und wenn ich nun warte, bis wir das in der Berufsschule machen, dann ist es ja auch nicht sicher, dass ich genau diesen gleichen Mikrocontroller bekomme, da es ja ziemlich viele gibt, oder?
Versteht man denn trotzdem die Logik dahinter dann einfacher? Denn die ist ja nicht Sprachenabhängig, oder?
Gruß
Thomas
SprinterSB
30.07.2005, 14:28
Du musst zunächst mal unterscheiden zwischen Assembler (Programm zum Assemblieren), Assembler (Die "Sprache" zum Programmieren) und dem Controller.
Innerhalb einer Controller-Familie ist es kein Problem umzusteigen.
Die Unterschiede liegen da in möglicherweise anderen Registern (GPRs und SFRs), anderen Befehlen (erweiterter Befehlssatz zB), etc.
Wenn du aber von nem 6510 wie er im C64 gesteckt hat auf ein Pentium oder 68060 umsteigen willst, da liegen natürlich Welten.
Die Denkweise beim Programmieren in Assembler ist aber immer ähnlich und sollte dir vertraut sein, denn du schon in Asembler programmiert hast.
Daten aus dem aus dem Speicher in Register laden
Daten von Registern abspeichern
Subroutinen aufrufen, evtl Daten in Registern/im Speicher übergeben
Daten manipulieren
selber kümmern um Register-Benutzung, Calling-Conventions, Frame-Layout, Nebeneffekte (Pipelining), Coprozessor, Hardware-Bugs (die von guten Compilern umschifft werden), ...
Das Programm zum Assemblieren sollte ja kein Problem sein, da findet man sich ja schnell ein.
Problem ist ja, dass ich nicht weiß, welche Controller sie in der Berufsschule verwenden. Aber wie du ja sagst, ist die Logik ja immer gleich. Ich denk mal, es ist doch immer von Vorteil wenn man schonmal in Assembler programmiert hat. Denn dann findet man sich doch sicher leichter in eine andere Assemblersprache wieder ein, oder?
Ich denk mal, ich werd mir das komplette Set mal bestellen und schaun wie weit ich komm. Dann werd ich ja später in der Schule sehen, wie unterschiedlich das alles ist.
Gruß
Thomas
Jahn Kohlhas
30.07.2005, 19:54
Hallo,
stimmt natürlich das es ziemliche unterschiede zwischen prozessoerarchitekturen und auch zwischen der mnemonik der verschiedenen assembler gibt... hat man die grundprinzipien jedoch bergriffen erschließen sich einem andere architekturen und auch unterschiedliche assembler viel schneller... eine ganze menge gemeinsamkeiten gibt es ja doch... ;-) aber was ich eigentlich sagen wollte... einen avr in assembler programmieren hat auch echt einen spaßfaktor... ist meine persönliche meinung ;-) und ganz nebenbei kann man so manchen lehrer auch einfach mal nen avr zeigen und wie schnell der ist und ich denke so mancher alt gedienter berufsschulleherer wird vielleicht doch vom guten "alten" 8051 auf AVR umsatteln...
gruß Jahn
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.