Hallo liebe Probrammierer
Ich stelle mich mal erst vor da ich ja neu hier bin;-).
Meine Freunde nennen mich "mo" oder "momo" komme aus Berlin bin 23 und
hab grad meine Ausbildung zum Kfz-Service-Mechaniker (Autos
reparierer;-)) gemacht.
Wie ihr gelesen habt bin ich ein kleiner Mechanicker der aber den drang
hat µC zu programmieren.
Will zum anfang einen atmega8 programmieren um mit dem Tutorial zu
arbeiten.
Fragen:
1.Ist es eigentlich möglich µC Programierung zu lernen(selber
beibringen) ohne zu studieren?
2.Zum programmieren brauch ich ja die Software(avr studio zb.) und einen
Programmer... nur kan ich den programmer selber Basteln da ich zum
Anfang nicht viel Geld ausgeben will bzw. kann und alles am Leppi machen
will (das heißt über usb und =>vista<=)!?
Was erwarten mich für Fehler durch das selber Basteln(ich meine die
komunikation avr<-->avrstudio)
3.Einige fragen über euch da es mich interessiert
3.1.wie lange braucht ihr um ein Programm zu schreiben?
3.2.wie lange macht ihr das schon (Programmieren)?
3.3.habt ihr studiert bzw. seid ihr dabei?
(studiert wie man programmiert)
3.4.wo oder wie habt ihr das gelernt?
mfg mo
>1.Ist es eigentlich möglich µC Programierung zu lernen(selber >beibringen) ohne zu studieren? Klar, lernen kann das jeder. Ich denke 80-90% der Leute hat sich das hier selber beigebracht. >2.Zum programmieren brauch ich ja die Software(avr studio zb.) und einen >Programmer... nur kan ich den programmer selber Basteln da ich zum >Anfang nicht viel Geld ausgeben will bzw. kann und alles am Leppi machen >will (das heißt über usb und =>vista<=)!? Einen einfachen ISP-Programmer zu basteln ist simpel. Notebooks haben meist kein Parallelport mehr, von daher musst du schon RS232 (sofern sowas überhaupt noch vorhanden ist) oder direkt USB. Am besten ist es denke ich wenn du dir USBProg (http://shop.embedded-projects.net/product_info.php?info=p6_usbprog-v3-0--Adapter-vormontiert-.html) kaufst. Für 37€ Vorprogrammiert bestimmt nichts gegen zu sagen. Ansonsten findest du weitere Schaltpläne hier im Wiki (http://www.mikrocontroller.net/articles/AVR_In_System_Programmer). >3.Einige fragen über euch da es mich interessiert > 3.1.wie lange braucht ihr um ein Programm zu schreiben? > 3.2.wie lange macht ihr das schon (Programmieren)? > 3.3.habt ihr studiert bzw. seid ihr dabei? > (studiert wie man programmiert) > 3.4.wo oder wie habt ihr das gelernt? zu 3.1: Jenachdem wie umfangreich das ist, und ob die Thematik für einen neu ist. Von wenigen Stunden bis Wochen ist mit Sicherheit alles möglich zu 3.2: 5 Jahre vielleicht µC Programmierung, davor nur C, PHP... zu 3.3: Hab E-Technik studiert und bin seit diesem Jahr fertig. Da lernt man unter anderem auch µCs und allgemein mit C/C++ zu programmieren. zu 3.4: Programmieren habe ich mir vor zig Jahren selber beigebracht, erst mit VB angefangen und schließlich bei C gelandet.
Gast
#1047145
> 3.1.wie lange braucht ihr um ein Programm zu schreiben? 5 Minuten bis einige Monate :) > 3.2.wie lange macht ihr das schon (Programmieren)? nur programmieren oder speziell auf Controller bezogen ? > 3.3.habt ihr studiert bzw. seid ihr dabei? (studiert wie man programmiert) Es gibt wohl alle Varianten, man braucht allerdings kein Studium, um das Programmieren in C oder Basic zu lernen. Für Assembler an sich auch nicht, schön wäre dafür trotzdem ein bisschen grundsätzliches Verständnis der Digitaltechnik / Logik. Die richtige Beschreibung eines Problems und die Fähigkeit, es in Code umzusetzen, ist da manchmal schon schwieriger. Je nach Anspruch kann hier ein Studium nicht schaden. > 3.4.wo oder wie habt ihr das gelernt? Irgendwann mal in Eigenleistung. Zum Zeitpunkt, als ich entschloss, mal etwas mit Controllern zu programmieren, hatte ich allerdings schon Erfahrung mit Basic 2.0, Visual Basic, Java Script, PHP, Perl u.s.w. Sollte C die Sprache der Wahl werden kann ich dem absoluten Programmiersprachen-Neuling empfehlen, sich zunächst mit C-Programmierung am Rechner zu beschäftigen.
Gast
#1047148
Also, ich bin jetzt auch nicht der Crack was µC angeht, mach das selber auch erst seit ca. zwei Wochen, aber
1 | |
2 | |
Meiner Meinung nach schon, es wird vllt. etwas dauern, aber auf jeden Fall möglich. Ich denke es ist wichtig ein allgemeines Verständnis für Bits und Bytes zu haben. Ich persönlich komme wesentlich besser damit klar Assembler als C zu schreiben.
1 | |
2 | |
3 | |
4 | |
Ich hab mit dafür extra XP drauf gemacht. Als Programmer benutze ich dieses USBProg von embedded-projects.net. Nach keinen Anlaufschwierigkeiten funzt das jetzt wunderbar mit dem AVRStudio zusammen. Unter Vista, keine Ahnung ob das da auch läuft.
1 | |
Kommt darauf an was man macht, bei mir als ich meine erste Software-PWM geschrieben hab, schon einige Stunden.
1 | |
ca. zwei Wochen, allerdings seit dem auch fast täglich, mir fallen immer neue Sachen ein :)
1 | |
nein, hab programmieren nicht studiert und bin auch nicht dabei
1 | |
Zuhause vorm Rechner mit verschiedenen Tuts. Z.B. das hier auf der Seite hat mir sehr geholfen. Viel rumprobieren hilft auch, gibt für AVRs ja jede Menge im Internet Ich hoffe ich konnte dir ein wenig helfen :) Viel Erfolg
Gast
#1047150
Da kann ich mich mal einreihen. Ein Studium braucht man sicher nicht, ich denke die meisten hier werden wohl schon in der Schule mit µCs angefangen haben. War bei mir auch so. Eigeninitiative und ein Grundverständnis von Logik ist das wichtigste, denke ich, der Rest kommt mit der Zeit.
Hallo Mohamed, ich bin gerade genauso weit wie Du. Nein, einen Schritt weiter bin ich schon: ich habe mir gestern das Starter-Kit aus dem Shop hier bestellt. Schau Dir das doch mal an. Da ist auch ein USB-Prgrammmer USBProg dabei, der auch mit modernen Notebooks arbeiten sollte. Ich versuche dann mir das alles selber beizubringen - und hoffe auf Hilfe von Forum und Internet. Viel Erfolg, Dirk
Gast
#1047166
> 1.Ist es eigentlich möglich µC Programierung zu lernen(selber > beibringen) ohne zu studieren? Ja kein Problem. Das programieren eines Microcontroler ist eigentlich eher einfach. Schwierig wird es eher durch die Aufgabenstellung. Wenn man etwas schwieriges regeln moechte so ist eine Vorlesung zum Thema Regelungstechik schon hilfreich, und fuer diese Vorlesung sind tiefergehende Mathekenntnisse notwendig. Wichtig ist auch das Ziel. Jeder kann einen blinkenden Weihnachtsbaum programmieren. Eine Schaltung wie einen Einspritzcomputer der 15Jahre bei -20 bis +100Grad funktionieren soll, ist dagegen schon schwieriger. > Anfang nicht viel Geld ausgeben will bzw. kann und alles am Leppi machen > will (das heißt über usb und =>vista<=)!? Es gibt ein paar Probleme mit USB weil die Schnittstelle Timingprobleme verursacht. Ich wuerde einem Anfaenger daher empfehlen einfach einen fertigen Programmer zu kaufen. Es gibt von Atmel da so eine kleine blaue Kiste die garnicht so teuer war. Ich wuerde dir auch empfehlen nach einem Buch ausschau zu halten! Olaf
>> 3.1.wie lange braucht ihr um ein Programm zu schreiben? > 5 Minuten bis einige Monate :) Genau so würde ich das auch sagen. Wenn du erst mal keine Ahnung hast musst du dir das Tutorial , die Doku vom Atmega8 und die Appnote durchlesen. Das verbraucht 95% der Zeit und zum Schluss hast du da nur 2 Zeilen Quelltext zu stehen. > 1.Ist es eigentlich möglich µC Programierung zu lernen > (selber beibringen) ohne zu studieren? Im Studium lerne ich das jedenfalls nicht, das muss ich mir auch alles selbst beibringen. > 3.4.wo oder wie habt ihr das gelernt? Mit dem AVR-Tutorial und der Doku vom Atmega8 :) Und mit einem selbst gelöteten Testboard. (zum ausprobieren) Nutz doch einen WinXP-Desktoprechner und erst mal einen Parallelport-Programmer, jedenfalls mach ich das oft so. Ist einfach, schnell und funktioniert immer. lg
Gast
#1047183
Hallo, Programmieren selbst zu lernen ist durchaus möglich. Wichtig ist, dass du deine Hardware, sprich den ATMEGA8 genau kennst. Du solltest den Befehlssatz des Prozessors kennen, den gibts bei Atmel (AVR Instruction set). Dann ist das Datenblatt (datasheet) wichtig, dort steht alles, was man beachten muss, das ist für jeden Controller anders, aber du kommst nicht drum herum, das (eventuell mehrfach) komplett zu lesen. Dann musst du natürlich eine Programmiersprache beherrschen, also entweder du programmierst maschinennah in Assembler oder in einer höheren Programmiersprache, z.B. C. Mit Assembler kann man die eigentlichen Funktionen des Prozessors sehr gut nachvollziehen, es eignet sich also gut zum lernen. Programme werden dadurch, dass die Befehle sehr einfach sind, jedoch immer relativ umfangreich, weil man füe eine bestimmte Funktion, die man umsetzen will, viele der einfachen Befehle braucht. C hat sehr komplexe und mächtige Befehle, deswegen sind Programme deutlich kürzer und schneller zu Programmieren als in Assembler, jedoch sieht man nicht mehr direkt, was der Prozessor wirklich damit macht. Das macht das Suchen von Fehlern schwieriger. Man hat in C auch gleich mal etwas hingeschrieben, womit der Prozessor überfordert ist, das passiert einem in Assembler nicht leicht. Um einen AtMega8 zu Progrmmieren brauchst du AVR-Studio für Assembler und für C zusätzlich WINAVR. Um dein übersetztes Programm in den Speicher dex Controllers zu laden, gibts mehre Möglichkeiten. Entweder du verwendest einen Highvoltage Programmer, wie z.B. das STK500 oder ein Galep3, 4 oder 5. Diese Geräte sind relativ teuer, damit lassen sich aber auch viele Probleme lösen bzw. treten diese erst garnicht auf (z.B. falsches Setzen von Fuses). Eine weitere gängige Art, zu flashen ist ein ISP-Tool (in system programming). Dabei ist der Controler in der Zielschaltung eingebaut, während er programmiert wird und wird auch von diese mit Spannung versorgt. Den Selbstbau einer ISP-Schaltung empfehle ich Anfängern aber nicht. Im shop bekommst du für 40 Euro das AVR-ISP, das kann das alles per USB-Schnittstelle. Die Selbstbauvarianten funktionieren normal am Parallelport des PC und am Laptop normal wegen zu geringen Pegeln an der Schnittstelle garnicht. Was erwarten dich für Fehler: Darüber kann man ein Buch schreiben... Mit dem STK-500 kommt man recht schnell zu etwas funktionsfähigem. Wenn man seine Schaltung selbst baut, kann im Prinzip alles passieren, von es geht nicht, bis es geht alles kaputt, was miteinander verbunden ist, bis hin zum Laptop. Das kommt immer darauf an, was man falsch macht. Es schadet nicht, vorher ein bisschen mit konventioneller Elektronik gebastelt zu haben. Zur dritten Frage: Wie lange brauch ih für ein Programm? Es kann sein, das man ein einfaches Programm in einer halben Stunde zum laufen gebracht hat (LEDs blinken lassen, Taster abfragen usw.). Das kommt auch immer darauf an, wie viel Arbeit das Herstellen der Hardware ist, beim STK-500 ist halt schon alles drauf, was man zum Probieren braucht. Ich habe einer Waschmaschine mit defektem Schaltwerk eine Rechnersteurung mit Mikrocontroller gebaut, die Programmierung hat 3 Monate gedauert. An einer Steuerung für eine Druckluftkompressor habe ich 6 Monate programmiert. Das ist natürlich nicht die Größenordnung, in der du anfangen möchtest, der Kompressor hat ein Grafikdisplay mit Touchpanel und viele andere Feinheiten, die ich haben wollte. Wie lange programmiere ich schon? Seit über 10 Jahren. Ich habe damals mit Basic angefangen, dann Pascal und Modula2 gelernt, irgendwann dann C und zwischendurch Assember für diverse Architekturen. Ich studiere im Moment Elektrotechnik an der TU München. Die Vorlesung Grundlagen der Informatik hilft etwas beim grundlegenden Verständnis, wie man Programme strukturiert. In der Computertechnikvorlesung wird eine virtuelle Maschine behandelt, anhand derer man Einblicke bekommt, wie Prozessoren intern arbeiten. Mikrocontroller zu Programmieren lernt man am besten, in dem man sich etwas Hardware besorgt, die man einfach anhand von vorgefertigten Beispielen zum laufen bekommt und versucht dann vorsichtig, die mitgelieferten Beispiele abzuändern, schaut, ob es funktioniert, wenn nicht, woran es liegt usw. Das ist ein ständiger Prozess aus Ändern, Testen, Ändern... Es gibt sehr gute Bücher über AVR Controller, dort sind meist auch einfache Schaltungen mit Mikrocontrollern beschrieben. Als ich angefangen habe zu programmieren, hat es auch noch kein Internet gegeben, wo man mal schnell Datenblätte ansehen konnte. Man musste alles beim Hersteller in gedruckter Form bestellen. Außerdem sind mittlerweile die PCs leistungsfähig genug, dass man auch mal ein Programm eines AVR in AVR Studio simulieren kann und im Voraus sieht, was passieren wird. Somit ist das eigentlich kein nicht mehr schwierig, auch ohne spezielle Ausbildung einzusteigen, man darf sich nur nicht demotivieren lassen. Es gibt nunmal Probleme, die sich oft wochenlang nicht lösen lassen. Das ist normal und passiert auch Profis. In so einem Fall hilft dann nur das Lesen der Datenblätten und genau Schritt für Schritt nachzuvollziehen, was der Prozessor macht. Wenn man was falsch verstanden hat, kann es schon mal passieren, dass man einen Fehler garnicht selbst findet, sondern jemand anderen um Rat fragen muss. Aber auch das ist ja hier im Forum kein Problem. Viele Grüße, Peter
cool ich danke euch für die antworten. @timmo herzlischen glückwunsch für das beendete studium und wünsche dir viel erfolg in dem was du noch machen wills natürlich gilt das auch für alle anderen;) das freut mich zu hören das es geht!!! ich beschäftige mich seit ca. 1 monat mit internetrechersche um µc zu lernen aber wie man weiß wenn man sich etwas unter druck setzt denkt dan am ende "das geht nich die haben das doch studiert du dumm kopf wie sollst du das schaffen"? ich hab das mal vor jahren (ca. 7 jahre) in der schule (oberschule) gemacht. ich kann mich aber nur nicht ganz dran erinnern wie ich geschrieben hab oder mit was... if taste 1=1 oder zu then motor 1=links irgend sowas in der art. logik bausteine und das was die machen kenne ich teilweise schon. naja das wird schon klappen aber es ist richtig das ich nur: 1.avr studio (kostenlos) brauch 2.den programmer stk500 ca 80€. und für die verbindung zum usb einen usb adapter zu anfangen brauch brauch?
Du brauchst kein STK500, ein USBasp / USBisp reicht dafür aus. Wenn ich ein Board mit einem mikrocontroller herstelle dann spendiere ich ihm immer gleich eine ISP-Buchse, dann steck ich da mein USBasp/USBisp oder STK200 (kleine handliche Geräte) rauf und schreibe mein Programm auf den chip.
Gast
#1047326
für den anfang ist ein Steckbrett auch sehr hifreich das kann man immer gebrauchen. Auch in den Roboterforen programmieren einige "kinder" ihre Bots dort wurde mal ein richtig geiler 8 beiniger roboter vorgestellt und der erbauer sagte: ich werde am wochenende mit meinem Vater noch eine halterung für das xxx modul bauen aber ich darf noch nicht allein an die Bohrmaschine ;) sein bot konnte schon laufen auf hindernisse reagieren und sonstigen schnick schnack alles selber programmiert. Ich würde zu einem Steckbrett und dem USBprog raten. dann noch nen kleinen Tiny 2313!? oder Mega8 , 10 led`s 2mA 10 widerstände und 3 tastern schon kann es losgehen ca 50€ Mein erster µC war der 90at2313 dann die Tiny12, bein Tiny12 musste ich dort aber feststellen das das in die unterprogramme springen schnell vorbei war wegen dem kleinen stackpointer. Mit dem Mega8 haste erstmal reserven. Viel erfolg Gruß P.Pan
Gast
#1047331
>springen schnell vorbei war wegen dem kleinen stackpointer.
Da verwechselt wohl einer den Stackpointer mit keinem Ram!
Der Tiny12 hat keinen Ram und einen Hardware Stack von
glaube nur 4 Stufen.
Gast
#1047435
Hallo, wenn du das STK500 verwendest, brauchst du nichts weiter als die kostenlose Software dazu. Beim STK500 sind meines Wissens nach auch ein paar Prozessoren zum Testen dabei. Einen USB-seriell-Adapter brauchst du dann nur, wenn dein Laptop keinen Com-Port mehr hat. USBasp ist natürlich auch möglich, man muss aber die erste Schaltung komplett selbst aufbauen, da ist es dann schwierig zu erkennen, ob ein Fehler in der Hardware oder der Software vorliegt, wenn am Anfang einfach nichts geht. Außerdem kann man damit keine verfusten Controller retten, soweit ich weiß. Wenn du Risiko gern magst, kannst du auch eins der Demoboards von Pollin ausprobieren, das kostet nur 15 Euro und kann für einige wenige Prozessoren das, was ein selbst gebautes Board mit USBprog kann. Was du bezüglich deiner Programmiersprache schreibst, die du gelernt hast, klingt nach Pascal, da ist ein Umstieg auf C nicht schwierig. Grüße, Peter
Gast
#1047471
Hallo, bin Anfänger wie du aber paar Kappitel weiter! so nach meine erfahrung als ANFÄNGER kann ich dir folgendes sagen: >> wenn du das STK500 verwendest, brauchst du nichts weiter als die >> kostenlose Software dazu. Beim STK500 sind meines Wissens nach auch ein >> paar Prozessoren zum Testen dabei. Einen USB-seriell-Adapter brauchst du >> dann nur, wenn dein Laptop keinen Com-Port mehr hat das stimt obwohl ich keine habe! der STK500 ist angeblich super von Einstiegt bis zum Profi, Programmer brauchst du keine ich habe mich ein Eval-Board als Bausatz gekauft (Pollin Board) für 19Euro (kein Werbung) und selber gebaut, als Programmer habe ich selber der USBasp "gebastel" und funktioniert bis heute tadelos. Einige gute Varianten meine Meinung nach sind: http://www.soft-land.de/index.php?page=avrdev-board hier brauchst du NICHTS mehr für den Anfang (50 Euro) USBasp ist schon im Board! hier bei www.ulrichradig.de - der ATmega8 Experimentierboard als Bausatz für 23 Euro und - der USBasp als Bausatz für 13 Euro) (kein Werbung) damit bist du auch sehr gut bedient! so, viel spass Gruß Martin
@peter diener das ist es ja mein lappi hat nur ein stecker um einen monitor anzuschließen drei mal usb und natürlich lan sonst könnte ich euch nicht schreiben hehe na gut dann lade ich mir avr studio und dann überleg ich ob ich den avr/usb? isp hole ober selber bastel stk500 ist mir zu teuer für den anfang wünscht mir glück das es klappt leute :)
Gast
#1047673
hi also für den einstieg ohne viel bastelein ist das ez430 kit von ti sehr zu empfehlen! man bekommt für 30 euro alles was man braucht: - uC - gute IDE - Debugger - man kann die uC's billig sampeln bzw. kaufen - uC ist im zielsystem prog/debugbar Zudem hält TI eine ganze menge an SW beispielen bereit. Gruß marcel
Gast
#1047685
Hallo, ich moechte noch gerne auf einige der sogenannten "SIMMsticks" hinweisen. Habe damit und dem AVR-ISP von Atmel meine ersten Experimente mit ATmeg32s gemacht und war recht praktisch. Die Platinen sind sehr billig und von ausreichender Qualitaet. Gekauft habe ich mir zwei ATMEGA Porzessorplatinen(SIMM100), eine kleine Mutterplatine (DT003) mit 5V Regler und RS232 Interface und ein paar SIMM 30 pin Steckerstreifen(DT208) um leicht an den 30-pin Bus ranzukommen. Zusammen mit dem AVR-ISP hat alles sofort hardware maessig funktioniert. Die Platinen bestellte ich mir bei dontronics (Keine Werbung) in Australien. Ich nehme an dass die bei Euch in Europa irgendwo im Handel sein duerften. Noch schoenes Wochenende, Gerhard http://www.dontronics.com/dt.html http://www.dontronics.com/simm100.html
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.