PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neu in der C-Programmierung



Dakillaboy
25.11.2015, 12:25
Hallo Forumsgemeinde,

ich beschäftige mich jetzt seit ein paar Tagen intensiver mit dem Thema C-Programmierung. Erst hatte ich überlegt mit einem Arduino zu beginnen. Da bei uns in der Firma die Maschinensoftware aber auch mit C/C++ geschrieben wird wollte ich damit einsteigen. Nur leider haben wir mit diesem Thema in unserer Ausbildungswerkstatt nichts zu tun und in der Berufsschule wird auch nur die Grundlagen der SPS Programmierung geschult.

Jetzt wollte ich mich zu Hause mit diesem Thema befassen und selber einen Atmega16 oder Atmega32 programmieren. Wie ich die Grundschaltung für diese IC's aufbauen muss habe ich im Internet schon rausgefunden. Jetzt ist mein Problem, dass mein Laptop keine serielle oder parallele Schnittstelle mehr hat. Jetzt bräuchte ich einen Adapter, mit dem ich von USB auf die ISP-Schnittstelle des Atmega16/32 zugreifen kann. Ich kenne aus der Firma die Adapter von USB -> RS232. Könnte ich mit dem schon was anfangen? Mein Plan war es den Atmega auf einer Platine zu platzieren und diese in einem Gehäuse einzubauen. Die Anschlüssen des Atmega's würde ich dann alle nach außen führen und wollte dort für die ISP-Schnittstelle eine SUB-D Buchse vorsehen.

Eine weitere frage wäre noch, wenn ich später Daten mit PC austauschen möchte (über die RXD und TXD-Pins) müsste ich dann eine zweite serielle Schnittstelle mit dem PC herstellen oder würde das auch über diese eine SUB-D Buchse gehen?

Mit freundlichen Grüßen
Lutz

shedepe
25.11.2015, 12:51
Hey,
meine Erfahrung damit ist bisher: Gib die paar Euro für den Atmel USB Programmer aus Ich habe damals auch mit einem selbstgebauten Programmer angefangen. Das frustiert am Anfang nur, weil man an verschiedenen Stellen nach Fehlern suchen muss, wenn was nicht klappt. Außerdem funktionieren die Adapter oftmals nicht zu Programmieren, da diese nur die Datenleitungen richtig umsetzen.

Wenn du den USB Programmer nimmst hast du auch das Problem mit den beiden Anschlüssen nicht.

Aber warum nimmst du denn nicht einfach einen Arduino. Da hast du alles dabei, von Chip, funktionierender Platine, Programmer, Datenausgabe über USB.

Dakillaboy
25.11.2015, 13:08
Hallo,

danke für deine Schnelle Antwort. Ich habe bei Reichelt jetzt auch einen Adapter gefunden, der direkt von USB->ISP-Schnittstelle wandelt.

Über einen Arduino habe ich auch erst nach gedacht, aber nach einem Gespräch mit einem Arbeitskollegen habe ich erfahren, dass bei den Arduinos nicht direkt mit C programmiert wird, sondern mit einer Abgewandelten Art von C programmiert wird. Da ich später nach meinem Techniker für Elektrotechnik gerne bei uns in die Entwicklungsabteilung möchte, wollte ich mich gerne auch schon mit dem Grundlegenden Aufbau eines Mikrocontrollers beschäftigen. Deshalb die Entscheidung gegen einen Arduino, auch wenn dort der Einstieg wesentlich einfacher wäre.

Da ich für die Programmierung nun keine SUB-D Buchse mehr benötige, kann ich diese ja nun für die Datenübertragung via RS232 nutzen oder?

Gruß
Lutz

shedepe
25.11.2015, 13:20
Ja. Wenn du aber direkt eine Platine ätzen willst, kannst du dir auch gleich einen FTDI USB-Seriell Wandler einbauen,.

Dakillaboy
25.11.2015, 13:34
Eine Platine Ätzen wahrscheinlich eher nicht, da ich dafür kein Vernünftiges Programm besitze, um diese zu entwerfen. Ich wollte es mit einer normalen Streifenrasterplatine versuchen.

HaWe
25.11.2015, 13:42
Arduino verwendet keine "verwandelte Art" von C, sondern schon "richtiges C".
Allerdings macht Arduino es für Einsteiger sehr einfach, mit den extrem komplizierten Eigenheiten von C/C++ (auf C++ Objekt-, Library-, Compiler- und Makefile-Ebene) zurecht zu kommen, denn es nimmt einem sehr viel Arbeit und lästigen Kleinkram ab.
Wenn du dich damit eingearbeitet hast, ist es kein Problem, deine Arduino-C-Kenntnisse auch auf anderen Plattformen zu verwenden.

Überhaupt ist der große Vorteil von Arduino:
Man kann mit der Arduino Programmierumgebung ("IDE") nicht nur die mickrigen AVR-Prozessoren programmieren (Uno, Nano, Micro), sondern auch die extrem leistungsfähigeren ARM-Prozessoren ( in Zero, 101, Due, Teensy).
Die C-Sprache und die Arduino-Vereinfachungen bleiben dieselben, alles andere erledigt Arduino für dich.

Das Hochladen deiner Programme geht ganz bequem über ein USB-Kabel direkt zwischen Arduino und PC - nichts weiter.

Dass die Arduino IDE alles für Anfänger so einfach, überschaubar und bequem macht, führt zu einer schnellen Lernkurve und ist auch der Grund für den weltweit ungeheuren Erfolg des Arduino-Konzepts.

Und trotzdem wirst du anschließend ebenso leicht auch mit dem Programmieren von Raspberry Pi oder sogar dem Beaglebone Black zurecht kommen, als wenn du von Anfang an den brutal steinigen Weg per "bare-metal-C" gewählt hättest.
(my2ct)

Mxt
25.11.2015, 13:58
Hallo,

ich denke, wenn er mal in die Entwicklungsabteilung will, ist es schon mal ganz gut, wenn er mal mit dem nackten IC anfängt. Zumindest sollte er das mal gesehen haben. Und Atmel Studio ist ja dann eher als IDE angebracht, auch weil man als Entwickler sicher auch mal mit Visual Studio auf dem PC programmiert. Man kann die Arduinos ja auch damit programmieren, mit oder ohne Arduino Software.

Programmierung und Debuggen über USB ist heute allerdings in der Tat weit verbreitet. Die fertigen ARM-Boards haben das eigentlich alle.

seite5
26.11.2015, 08:25
Hi,
ich würde sogar noch ein paar Euro mehr ausgeben und mir gleich das ICE Basic von Atmel besorgen (bei Mouser etwa 50Eus), da hast Du
einen ordentlichen Programmer (8, 32 bit, ARM) und kannst mittels Atmel Studio debuggen (Variablen und Register während der Laufzeit "ansehen").
Es gibt auch eine ganze Reihe guter E-Boards (z.B. Mattairtech), die man auf ein Breadboard stecken kann, da muss man nix gross löten und
kann sich auch ohne TQFP-Adapterei mal mit den wesentlich besseren Atmel XMegas befassen.
mfg
Achim

Dakillaboy
27.11.2015, 12:16
Hallo,
ich habe da mal noch eine andere Frage. Es geht darum, wenn ich zum Beispiel einen 12V Motor durch ein PWM-Signal steuern wollte. Wie müsste ich diesen anschließen, da der Mikrocontroller ja selber an seinen Pin's nur 5V ausgibt. Um eine 12V Motor in beide Richtungen drehen zu lassen, kann ich ja mit handelsüblichen 5V Relais arbeiten oder?

MfG
Lutz

HaWe
27.11.2015, 12:23
hallo,
dazu brauchst du eine H-Brücke, häufig verwendet man hier einen L293 oder L298

Dakillaboy
30.11.2015, 09:15
Hallo,

wäre es eigentlich Sinnvoll den Reset zusätzlich zu dem auf der ISP-Schnittstelle mit einem externen Taster anzuschließen?

MfG
Lutz