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.
> 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.
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.
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
3.1.wielangebrauchtihrumeinProgrammzuschreiben?
Kommt darauf an was man macht, bei mir als ich meine erste Software-PWM
geschrieben hab, schon einige Stunden.
1
3.2.wielangemachtihrdasschon(Programmieren)?
ca. zwei Wochen, allerdings seit dem auch fast täglich, mir fallen immer
neue Sachen ein :)
1
3.3.habtihrstudiertbzw.seidihrdabei?
nein, hab programmieren nicht studiert und bin auch nicht dabei
1
3.4.wooderwiehabtihrdasgelernt?
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
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
> 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
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.
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
>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.
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
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 :)
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
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.htmlhttp://www.dontronics.com/simm100.html