Forum: Mikrocontroller und Digitale Elektronik Einstieg in die programmierung


von Jens Hakken (Gast)


Lesenswert?

Hallo erstmal an alle,ist ein tolles Forum hier.
Ich habe mir einen Roboter gebaut ,der Gegenstände umgeht,licht
Folgt(mit solarzelle damit er sich etwas aufladen kann)und sich im
dunkeln aus bzw. im hellen einschaltet.Alles habe ich natürlich mit
analogen schaltungen gemacht.Doch jetzt möchte ich mich auch mit
Microcontroller befassen ,um den roboter auf einfachere weise zu
erweitern oder besser gesagt noch funktionaler machen.Als ich in meinen
elektronikbestand wülte,habe ich mehrere microcontroller gefunden und
zwar den PIC 10F202-I/P .
Allerdings muss ich sagen, das ich keine ahnung von programmieren
habe.Ist der überhaupt für kleinere anwendungen geeignet?Und was
benötige ich noch alles um ihn zu programmieren?Welche sprache sollte
ich am anfang wählen(wie sind da eure erfahrungen)?
Binn für jede hilfe dankbar.
Gruss
Jens

von SIGINT (Gast)


Lesenswert?

Hi Jens,
  erstmal Willkommen im Forum. Der PIC ist eigentlich NUR für kleine
Aufgaben verwendbar, da er noch nichtmal 1k Programmspeicher enthält.
Damit kann man schon etwas anfangen.... wenn du aber in deiner
Bastelkiste nich einen PIC12Fxxx findest, dann nimm lieber den.
Zum brennen des PICs kannst du die ICSP- Schnittstelle verwenden... im
Netz findest du informationen zur Programmierhardware und die nötige
Software.Hier ein paar Links:
http://www.qsl.net/dl4yhf/winpicpr.html
http://www.lancos.com/prog.html
http://www.ic-prog.com/

Die Programme würde ich bei diesen kleinen Programmspeichern nur in
Assembler schreiben... C ist viel zu groß.

Gruß,
  SIGINT

von Jens Hakken (Gast)


Lesenswert?

Super,danke für die antwort.
Gibt es von dem assembler irgendwie unterlagen , wo drinnsteht welche
wörter für gewisse aufgaben eingesetzt werden?
Diese icsp,kann man sich die nicht auch selber bauen?Ich hab soviel
elektronikbauteile im keller, dass ich das bestimmt zusammengezimmert
bekomme.Achja nochmal eine frage, reicht zum programmieren ein 386 PC
mit 133 MHZ?ein anderen hab ich leider nicht :(

von Timmo H. (masterfx)


Lesenswert?

Wie schnell dein PC ist, ist eigentlich egal, hauptsache er hat die
Schnittstellen und die ensprechende Software, die du zum programmieren
brauchst. Zur not reicht sogar DOS.
Die Assemblerbefehle stehen eigentlich immer in dem Datenblatt des
PIC's. Also einfach mal auf http://www.digchip.com oder
http://www.alldatasheet.com nachgucken, oder natürlich direkt beim
Hersteller.

von Roland (Gast)


Lesenswert?

Oder du nimmst einen AVR und im AVR Tutorial hier ist alles beschrieben
was du für den Einstieg brauchst.

von Timmo H. (masterfx)


Lesenswert?

Stimmt, AVR ist wie ich finde die beste Möglichkeit in die uC Welt
einzusteigen. Vorallem wenn man sich nen Mega16 oder 32 holt hat man
auch gleich ein paar Reserven für größere Sachen. Aber auch weil
wirklich sehr viele den verwenden und man hier im Forum und überall im
I-Net Hilfe bekommt.

von Jens Hakken (Gast)


Lesenswert?

Geht ja echt fix hier mit den antworten:)
Wo bekommt man ein mega16 und wie teuer ist der?
Aber den kleinen pic den ich hab möchte ich trotzdem verwendung
schenken,habe 5 stück davon und fänd es schade wenn die nur so
rummliegen.Und da ich eh programmieren lernen möchte hab ich gedacht
das der für kleine anwendungen und somit als anfänger erst mal
ausreicht.Besser klein anfangen.Gerade weil ich ja soviel
elektronikkram im keller hab sollte ich das zeugz auch irgendwann mal
benutzen.Ist der für mich
geeignet,http://www.sprut.de/electronic/pic/projekte/brenner1/index.htm????

von Sebastian (Gast)


Lesenswert?

Den ATMega 16 gibts bei Reichelt für 4,15€, den ATMega 32 für 6,20€.
Aber bestell nicht bei Conrad, da ist es deutlich teurer.

Die PICs würd ich wegschmeißen, oder verschenken oder so, aber erst mit
PICs anfangen und dann mit AVRs weitermachen ist ... dämlich. Es gibt
einfach zu viele Unterschiede in der Programmierung und vor allem dem
Speicheraufbau. Ausserdem haben PICs einen Akku (Nein, keinen Energie-
sondern ein Datenspeicher). Bei AVRs hat man 32 Register. Also ich
möchte die PICs jedenfalls nicht in Assambler programmieren müssen.
Oder du bleibst bei den PICs. Aber einen Wechsel würd ich nur machen,
wenn es einen driftigen Grund dafür gibt.

Ich hab mich vor nicht all zu langer Zeit nach langem Überlegen für die
AVRs entschieden. Sie sind schöner zu programmieren, und man krigt hier
im Forum wirklich schnell gute Hilfe, so man denn präzise Fragen
stellt. Die Auswahl an verschiedenen Controllern ist ja bei beiden
Herstellern enorm, so dass man eigentlich immer fündig wird.

Ansonsten, also wenn du bei den PICs bleiben ist, dann ist www.sprut.de
natürlich deine erste Anlaufstelle. Für AVRs gibts auf dieser Seite
links oben das Tutorial.

Sebastian

von Jens Hakken (Gast)


Lesenswert?

Sorry,wuste ich ja nicht das es da unterschiede gibt ich dachte immer
dass das programmieren bei jedem controller gleich ist(so ist das wenn
man in einer neuen materie eintaucht wovon man keine ahnung hat).ok
dann werde ich mir nächste woche mal ein par atmega 16 oder 32
bestellen,welcher ist deiner meinung nach der bessere?Soll ich den
brenner dafür bauen
http://www.sprut.de/electronic/pic/brenner/index.htm#brenner3  ???
danke für deine schnelle antwort

von Sebastian (Gast)


Lesenswert?

Welcher der Megas besser ist kann man so nicht sagen. Kommt drauf an,
was du damit genau machen willst. Im Zweifelsfall hat der Mega32 halt
mehr Reserven und wär von daher besser geeignet.

Der von dir gelinkte Brenner funktioniert aber nur mit PICs. Nachdem du
dich ja für die AVRs entschieden hast bringt dir der also nichts.

Am besten du liest dir mal Das AVR-Tutorial hier durch (Link is ganz
links oben, bzw hier: http://www.mikrocontroller.net/tutorial/ )

Da ist dann auch ein Brenner verlinkt. Es ist aber auf jeden Fall
empfehlenswert als Neuling das Tutorial mal durchzubasteln. Man lernt
echt viel über die Chips. Und das Datenblatt des Mikrocontrollers ist
sowieso Pflichtlektüre. Auch wenn es lang ist.

Sebastian

von Jens Hakken (Gast)


Lesenswert?

Hallo sebastian,
ich hab das tutorial mal durchforstet.Da steht alles nur fur den atmega
8 drinn, ist aber vom programmieren her nicht anders als ein 32ger
oder?Wie lang braucht man eigendlich bis man das ganze ein wenig
beherscht?Ich hoffe das ich euch mit meiner ganzen fragerei nicht auf
den leim geh.
Gruss
Jens

von thkais (Gast)


Lesenswert?

Wenn man innerhalb einer Familie bleibt, also bei Atmel bei der
AVR-Serie, gibt es kaum Unterschiede. Der Prozessorkern ist kompatibel.
Das heißt: Die Beispiele des Mega-8 können mit keinen oder nur kleinen
Änderungen auf einem Mega-16 / -32 übernommen werden. Umgekehrt wirds
schwieriger, weil u.U. Hardwarefunktionen von "großen" Controllern
auf den "kleinen" nicht vorhanden sind.
Hast Du denn überhaupt schon einmal programmiert? Wenn nicht, dann
wirds etwas schwieriger, denn dann müssen wirklich erst einmal die
Grundlagen der Programmierung an sich erlernt werden. Im stillen
Kämmerlein ohne Hilfe kann das dauern... Bei Programmiererfahrung mit
irgendeinem anderen System muss man sich "nur" etwas umstellen.
Die größte Schwierigkein beim Erlernen der Programmierung von
Mikrocontrollern: Man bekommt keine Fehlermeldung, wenn das Programm
nicht funktioniert. Entweder das Programm ist O.K. und läuft, oder eben
nicht und läuft auch nicht. Man erkennt das nur daran, dass der
Controller das tut, was er soll, oder eben nicht...
Deshalb sollte man sich nicht zuviel für den Anfang vornehmen. Ich habe
hier schon Fälle gesehen, in denen ein Anfänger gleich ein
Grafik-Display ansteuern wollte. Das geht ziemlich sicher schief und
man hat nur Frust.
Also: Langsam aufbauen, z.B. LEDs ein- und ausschalten, Tasten abfragen
etc.. Deinen Roboter wirst Du dann auch irgendwann programmieren
können.
Wenn Du irgendwo nicht mehr weiter kommst - einfach hier fragen.

von Philipp B. (philipp_burch)


Lesenswert?

Zu den PICs:
Ich kann damit auch nicht wirklich viel anfangen, aber einfach zu
sagen, dass die "schlecht" sind, ist wirklich falsch. Zum Thema Hilfe
ist auch www.sprut.de eine gute Anlaufstelle, bei meinen paar
Programmierversuchen fand ich dort meistens Beispiele, wie man etwas
lösen kann. Allerdings würde ich auch empfehlen, mit den AVRs von Atmel
anzufangen (Hab' ich auch getan), da ist die Programmierung meiner
Meinung nach einfach einfacher. Besonders die Programmierung in
Assembler (C hab' ich dafür noch nie verwendet). Da hast du 32
Register mit je einem Byte Speicher, davon 16 die du auch direkt laden
und mit Konstanten vergleichen kannst. Dann gibt es da natürlich noch
den Unterschied bei den Interrupts, die PICs verwenden da einen
einzigen Vektor, die AVRs für jeden einzelnen einen eigenen, ist meiner
Meinung nach praktischer.
Und jetzt noch das "Todeskriterium" gegen die PICs ;) : Dort ist das
RAM aufgeteilt und man muss immer den richtigen Bank auswählen, damit
man da reinschreiben (oder lesen) kann. Das fällt mit C oder anderen
Hochsprachen aber natürlich nicht ins Gewicht.

Ein Hinweis aber noch: Falls du mit den PICs proggst, dann achte
darauf, am Anfang alle IO-Ports richtig zu initialisieren. Bei den AVRs
sind alle als digitale IOs geschaltet, bei den PICs z.T. auf
Spezialfunktionen.

von Jens Hakken (Gast)


Lesenswert?

Hallo,
die pics hab ich mir aus dem kopf geschlagen.
Da ich gesehen hab das man bei den AVRs doch besser aufgehoben ist und
man gute reserve an ports hat. Ich hab mir auch schon unterlagen
runtergeladen,sprich Bauanleitung für den Brenner und den isp
programmer.Werde dann laufe der woche in meinem keller verschwinden und
das zeugs zusammenzimmern.Donnerstag oder freitag werde ich dann die
atmegas32 bekommen.also könnte ich sogesehen ende nächster woche
anfangen.Nochmals vielen dank für eure unterstützung.

von Timmo H. (masterfx)


Angehängte Dateien:

Lesenswert?

Kannst dir ja so wie ich das RN-Board nachbauen :-) (siehe Anhang).
Ist zwar ein bissl Arbeit aber kostet insgesamt nur 30€ inkl. ISP (auch
selbst gebaut)

von Jens Hakken (Gast)


Lesenswert?

Hossa,das nen ich doch mal einen feinen aufbau.

von Jens Hakken (Gast)


Lesenswert?

Hallöchen alle miteinander,
ich hab mir ein entwicklungsboard mit isp , netzteil und datenkabel für
20 euronen ersteigern können.Hier mal ein par daten:

- Betriebsspannung 9 V~
- ISP- und JTAG-Anschluss
- ISP to seriell integriert
- serieller Anschluß über MAX232
- 3 Programmtaster
- 2 LEDs
- 1 Buzzer
- Port PA, PB, PC auf 34-polige Pfostenleiste

Ist das ein schnapper?
Es ist allerdings kein avr dabei,hab mir aber ein par ATMEGA32 bei
reichelt bestellt.

von SebA (Gast)


Lesenswert?

Hallo Jens,
kennst du www.pollin.de wenn ja hast du sicher noch nicht die Kategorie
"Diverses  > Bausätze" angeschaut oder ?

Sebastian

von Hannes L. (hannes)


Lesenswert?

> ich hab mir ein entwicklungsboard mit isp , netzteil und datenkabel
> für 20 euronen ersteigern können.

> Ist das ein schnapper?

Nööö...

Dann hättest du es gleich bei www.pollin.de kaufen können, dann hättest
du auch eine ordentliche Rechnung und Gewährleistung darauf...

...

von Jens Hakken (Gast)


Lesenswert?

Das ist ja genau das gleiche!
Schade, ich hatte schon gedacht das ich ein schnapper gemacht habe.Bei
pollin gibts ja mal richtig viel ramsch zu super preisen.Kennt ihr den
schon:www.efb-online.de ? Da gibt es auch ab und zu günstige sachen.

von Hannes L. (hannes)


Lesenswert?

Ach, die gibt's noch???

Die hatten vor langer Zeit 'ne Filiale in Magdeburg. Die hatten so
alle paar Monate ihren Namen und Geschäftsführer gewechselt, hatten
aber immer das gleiche Zeugs und das selbe Personal. Da gab es viel
Nepp, aber auch so manches Schnäppchen. Von einigen dort gekauften
Vorräten zehre ich heute noch...

...

von Jens Hakken (Gast)


Lesenswert?

Hallöchen,
ich hab gestern das board bekommen,atmegas 32 hab ich auch schon,kabel
für eine rs232 schnittstelle und traffo zur stromversorgung hab ich
auch.Was für ein programm brauch ich jetzt noch und was muss ich noch
beachten?Leider kenn ich mich mit PC`s nicht so gut aus,muss ich
irgendwas einstellen damit nachher auch alles am atmega32 ankommt oder
erkennt das der pc von selbst wie beim usb z.b.?
Danke schonmal im vorraus für eure andworten.
Gruss
Jens

von Karl H. (kbuchegg)


Lesenswert?

Du brauchst

AVR-Studio:  Das kriegst du bei Atmel
   www.atmel.com : Products
                    Microcontrollers & DSP
                     AVR 8 Bit RISC
                      Tools & Software

   dann holst du dir gleich auch nach das Datenblatt
   das zu deinem Prozessor passt. Findet sich unter
                      Devices

   Dann schaust du dich auf der Site noch ein wenig um, und
   holst dir alles was noch interessant erscheint. Der Abschnitt
   'Application Notes' ist zb hoch interessant.

Ist mit deinem Bord ein Brennprogramm gekommen?
Ich bin jetzt nicht sicher, ob AVR-Studion mit diesem Bord
direkt klarkommt. Im Zweifelsfall holst du dir noch ein
'PonyProg'. Findet sich bei http://www.lancos.com/prog.html

Und dann natuerlich: faengst du an, das AVR-Tutorial hier
durchzuarbeiten.

von Jens Hakken (Gast)


Lesenswert?

Icch hab mir jetzt ponnyprog runtergeladen aber wenn ich was abrufen
will schreibt er mir komunikationsport nicht verfügbar.Muss ich da noch
irgendwas am pc einstellen?Hab nicht soviel ahnung von pc,deshalb die
dumme frage,sorry.
gruss
Jens Hakken

von Dietmar (Gast)


Lesenswert?

@Jens:

Die ARM7 (32 bit) sind mittlerweile ein in µC vieler Hersteller
verbreiteter Standard, und manche Implementationen, z.B. die Philips
LPC2000-Serien, sind im Vergleich zu 8-Bittern unschlagbar
preisgünstig. Flash Download über JTAG oder RS-232 mit Freeware Philips
Flash Utility.

Da hat man 32 Bit, die per Floating Point genau so schnell rechnen wie
andere mit Festkomma. Und Speicher reichlich.

Man wählt da gerne die Programmiersprache C, das ist in der Industrie
Standard. Und wenn man möchte, später auch mal etwas Assembler, für
spezielle Anwendungen.

Hier gibt es eine Anzahl an Tool-Chains, das reicht z.B. von
professionellen Keil Tools für ARM mit JTAG Debugger für ein paar 1000
Euro bis hinab zu unter 100 Euro für ein Demo-Board und Open Source
Tools.

Hier im Shop hab ich da ein Evaluation Board von Olimex gesehen mit
Philips LPC2129, 75 Euro, und ein JTAG Tool für 10 Euro.

Da bleibt nur noch die Frage, welche Entwicklungsumgebung benötigt wird
(C-Compiler, JTAG, Keil Demo, OpenOCD, gcc, etc.).

Gruß

Dietmar

von Marco S. (masterof)


Lesenswert?

Was soll er mit einem ARM wenn er nicht mal mit dem ATmega umgehn kann
und noch keine Grundkenntnis hat. Du fängs ja auch erst mit einem Golf
an fahren zu lernen und dann wechselst du zum maybach.
Gruß Marco
PS: abo

von Jens Hakken (Gast)


Lesenswert?

Hallo @ all,
ich sehe in der sache programmieren doch echt grosse schwierigkeiten,
wenn man sich da nichteinmal richtig mit dem pc auskennt.Gibt es
vielleicht einen hier im Forum der bei mir in der nähe wohnt?Ich weiss
echt nichtmehr weiter,wäre dann klasse wenn man einen hat der mir dann
die grundzüge beibringen kann.So im umkreis von 100 km würde ich schon
fahren.
Gruss
Jens Hakken

von Jens Hakken (Gast)


Lesenswert?

Achja,hier meine adresse:
Jens Hakken
Görresstrasse 8
46446 Emmerich am Rhein

von Jens Hakken (Gast)


Lesenswert?

Hallo,
ich hab jetzt ponnyprog und avr studio gelöscht und dafür dann bascom
runtergeladen,jetzt wollte ich bei den bascom-avr options den chip und
so eintragen ,drück auf ok und dann kommt das hier:
 The HW stack,SW stack and frame space may not exceed the chip

Wo liegt hier das problem und was soll ich jetzt machen?
Kabel ist eingesteckt, spannung liegt am board an,HHHMMM
komisch

von Hannes L. (hannes)


Lesenswert?

Du hast dir also das Pollin-Board für Mega16/32 aus dritter Hand besorgt
und es funktioniert nicht... Vielleicht ist das ja der Grund, warum es
bei Ebay angeboten wurde.

Dazu solltest du wissen, dass die erste Version dieses Boards
fehlerhaft war und das Design nach Entdecken des Fehlers geändert
wurde. Dazu gibt es hier in diesem Forum mindestens einen Thread.

Der Fehler betraf (meines Wissens) aber nicht die Programmierung,
sondern die serielle Schnittstelle.

Jetzt stellt sich die Frage, ob das Board fertig bestückt war oder ob
du es selbst bestückt hast. Denn wenn ich richtig informiert bin,
lieferte Pollin das Teil als Bausatz. Somit besteht die Möglichkeit,
dass ein Fehler beim Bestücken die Funktion verhindert. Dies könnte
sein: Vertauschte Bauteile, falsch eingesetzte Bauteile, schlechte
Lötstellen, Kurzschluss durch Lötzinn-Brücke usw... Und da du das Teil
nichtmal vom Erstverkäufer hast, hast du nichtmal einen
Ansprechpartner, geschweige denn Gewährleistung oder Support.

Weiterhin wäre denkbar, dass dein Rechner Software enthält (das könnte
auch unwissentlich installierte Software wie Viren sein), die den
korrekten Zugriff auf die Ports verhindert. Es gibt da viele
Möglichkeiten, warum das nicht funktioniert.

Nun kann ich dir nichtmal etwas "wirklich funktionierendes" wie das
STK500 empfehlen, denn auch da kann man sehr viel falsch machen, wenn
man das Handbuch nicht richtig liest oder falsch interpretiert, weil
das technische Grundwissen dünn gesäht ist...

Such dir mal Jemanden, der dieses Pollin-Board hat und benutzt (also
Erfahrungen damit hat) und schick' ihm das Board mal "zum
Ausprobieren" hin. Dann kannst du wenigstens Hardwarefehler
ausschließen. Ich kann dir dabei nicht behilflich sein, da ich dieses
Board nicht besitze und nicht nutze.

...

von Frank (Gast)


Angehängte Dateien:

Lesenswert?

Ich häng mal das Fehlerdokument für die ersten Boards mit an. Damit
lässt sich ein Fehler recht schnell beheben wenns an den
Erstlingsfehlern liegt. Ich hab so ein Brett im Einsatz und bin damit
sehr zufrieden, vor Allem für den Preis.

bye

Frank

von Jens Hakken (Gast)


Lesenswert?

hallo,
ich habe das board als bausatz mit rs232 kabel und netzteil
gekauft.Ebenfalls lag die rechnung bei:der bausatz ist vor 2 monaten
gekauft worden und war noch komplett eingepackt,daran kann es nicht
liegen.Falsches bestücken kan ich auch ausschliessen,da ich mich
eigendlich gut mit elektronik auskenn und sogar die ganzen widerstände,
dioden und kondensatorenvor einbau geprüft habe.

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.