Hallo liebe Community, ich habe ein Arduino UNO R3 Board, welches in meinem Starter Kit mit enthalten war! Eins will ich vorwegnehmen - ich bin ein absoluter Anfänger! Ich möchte nun mit der Software Atmel Studio 7 meinen uC programmieren! Ist es auch mit einem Klon möglich? Ich habe irgendwo gelesen, dass es nur mit Boards geht, die über eine DIP-Funktion verfügen? Was ist das? Und noch einige Begriffe die ihr mir bitte erklären müsst:) Debugging Programmer Bootloader Ihr müsst ja nicht alles beantworten! Ich bin über jede Hilfe dankbar!
:
Bearbeitet durch User
Hallo, auf einem Arduino Uno R3 Board sitzt ein Atmega328P, nicht Atmega328PB. Diese Boards sind über die gewohnte USB Schnittstelle nur mit der Erweiterung von 'visualmicro' in Atmel Studio 7 nutzbar. Welche nach dem Testzeitraum Geld kostet. Wer schon zu AS7 greift, sollte einen ISP Programmer nehmen und den µC dann eben direkt per ISP flashen. Der Bootloader ist dann erstmal weg. Kann aber wieder geflasht werden. Den Bootloader benötigt aber nur wenn man über USB flashen möchte. Ob der µC in DIP oder SMD Bauform vorliegt ist vollkommen egal. Das Arduinoboard besitzt trotzdem eine ISP Schnittstelle. Hardware Debugging ist je nach Programmer möglich oder auch nicht. Beim Programmer kann ich dir keine Empfehlung geben, außer wenn Geld keine Rolle spielt, einen Atmel ICE, damit kannste alles machen. Debugging: Dient zur Fehlersuche im Programm/Code. In welcher Form man das macht sagt der Name noch nicht aus. Programmer: Stück Hardware zur programmieren > flashen des µC. Der kompilierte Code wird übertragen. Bootloader: Ein Stück Miniprogramm was verschiedene Aufgaben erfüllen kann. Meistens zum flashen verwendet um nicht über ISP zu gehen. Bsp. Arduino(IDE) einfach über den vorhandenen USB>Serial-Wandler und schwups ist das Programm auf dem µC, ohne zusätzlichen Programmer.
:
Bearbeitet durch User
Mans A. schrieb: > Programmer Der AVR-Dragon ist ein günstiger Programmer! Damit lassen sich Programme auf den MC übertragen. Ebenso kann man damit Debugging machen oder HV- Programmierung wenn man seine Fuses falsch eigenstellt hat. Hatt ne ISP und JTAG -Schnittstelle.
der nixwois schrieb: > Der AVR-Dragon ist ein günstiger Programmer! Ja, und sau empfindlich. Ich würde das Ding keinem Anfänger empfehlen.
Wenn du auf das Debugging verzichten kannst, genügt ein nicht originaler Programmieradapter, sofern er denn STK500 kompatibel ist. Wenn du Debuggen willst, musst du mehr Geld ausgeben. Meine Meinung dazu: Darauf kann man gut verzichten. Ich habe einen Debugger, trotzdem benutze ich ihn nur selten. Denn viele meiner Anwendungen kann ich nicht einfach anhalten, ohne dass sie völlig durcheinander geraten oder gar ihre Mechanik zerstören. Stell Dir mal einen Tintendrucker im laufenden Betrieb vor. Wie willst du da das Programm zum Debuggen anhalten? Ich untersuche Probleme primär mit Hilfe von Debug-Meldungen die ich seriell ausgebe und mit lese (oder später auswerte).
Stefan ⛄ F. schrieb: > Denn viele meiner Anwendungen kann ich nicht > einfach anhalten, ohne dass sie völlig durcheinander geraten oder gar > ihre Mechanik zerstören. Das ist dann aber ganz schlecht designt.
Energieverheizer schrieb: > Das ist dann aber ganz schlecht designt. Ich wusste, dass diese Argument kommen wird. Ist ja nicht das erste mal. Dann halte mal einen Tintendrucker mitten in Aktion an. Oder einen PDI Fahrtenregler. Oder eine Anlage, die flüssige Produkte mischt und abfüllt. Wenn du da das Programm im falschen Moment stoppst, kannst du es nicht mehr sinnvoll funktionierend fortsetzen. Und der Moment ist dort fast immer der falsche. Es gibt viele zeitkritische Dinge. Lassen wir unsere Kommentare mal stehen und einwirken. Der TO muss selbst über seine Fälle nachdenken. Debugger sind ein tolles Werkzeug, aber kein Allheilmittel.
Vielen Dank! Sehr einfach und verständlich erklärt! Mein Prof benutzt bzw. empfiehlt das Easy Module Shield. Aber habe ich das richtig verstanden. Man hat diesen Programmer nur deshalb, um verschiedene Sachen damit zu machen. Also RGB ansteuern usw. Dafür habe ich doch mein Steckbrett? Da kann ich auch eine RGB ansteuern, LEDs zum leuchten bringen. Was ist der Unterschied? Am Anfang habe ich mit der Arduino-Software programmiert (siehe Anhang), was ist der Unterschied zwischen dieser Software und Atmel Studio 7 bzw. MBLABX? Viele benutzen die Befehle pinMode(), digitalWrite(),... Damit komme ich in meinem Studium nicht weit, da wird mit Bitmanipulation gearbeitet etc.
Nein, nein, nein ... Wir haben es vielleicht verständlich erklärt, irgendwie kam es dennoch nicht an, so sagt mir mein Gefühl. Shields sind Aufsteckboards damit man nicht löten oder verkabeln muss. Programmer sind keine Shields. Das sind Übersetzer in Hardware die zwischen deiner Programmierumgebung (IDE) und dem µC fungieren. Der kompilierte Code wird vom Rechner zum µC übertragen und in den µC geschrieben. Die Arduino IDE ist im Grunde ein aufgebohrter Texteditor. Einfach aber effizient. Ich nutze den sehr gerne. Man wird von keinem Firlefanz abgelenkt. Atmel Studio und Co sind ausgewachsene Editoren mit erweiterten Funktionsumfang. Richtig fette IDE's. Nutze ich auch wenn ich diese Funktionalität benötige. Zum Bsp. kann man sehr schnell zu Implentierungen springen oder im µC Headerfile nachschauen usw. pinMode, digitalWrite sind keine Befehle. Vergiss das bitte. Das sind Funktion- bzw. Methodennamen um das programmieren einfacher zu machen. Ich verstehe nicht warum man damit nicht weiter kommt. Das könnte genauso gut von dir programmiert sein um nicht jedesmal mit Bits handieren zu müssen. Das machen aber wohl eher C++ Programmierer. :-) Aber wenn du das nicht magst, dann musst du das nicht verwenden. Kein Problem. Dann nimmst du das Arduinoboard nur als günstiges Programmierboard, vergisst das Arduino draufgedruckt ist und programmierst alles zu Fuss. Je nach Vorlieben oder Notwendigkeit. Am besten du fängst einfach an. Die Arduino IDE bringt viele Beispiele mit. Und auch hier im Artikel Wiki gibts gute Anleitungen wie man mit Bits und Bytes in den AVR Registern rumwerkelt. Für jeden ist was dabei. Und man kann es auch kombinieren. Je nach Vorlieben oder Notwendigkeit. Arduino Referenz. https://www.arduino.cc/reference/en/ Vieles wirst du dir früher oder später in ähnlicher Form nachprogrammieren wenn du keine Arduino IDE zur Verfügung hast. In ausgewachsener Form nennt man das dann "Libs". Grundlagen. https://www.mikrocontroller.net/articles/Kategorie:AVR-GCC-Tutorial Ob man das hier zwingend muss steht auf einem anderen Blatt. https://www.mikrocontroller.net/articles/Umstieg_von_Arduino_auf_AVR Entscheiden musst du selbst. Wichtig ist das du Shields und Programmer nicht durcheinander würfelst. Hat nichts miteinander zu tun. Luft holen, verstehen, machen. In diesem Sinne. :-)
:
Bearbeitet durch User
Stefan ⛄ F. schrieb: > der nixwois schrieb: >> Der AVR-Dragon ist ein günstiger Programmer! > > Ja, und sau empfindlich. Ich würde das Ding keinem Anfänger empfehlen. Und abgekündigt ist das Teil aus gutem Grund auch schon längere Zeit. Ich verstehe sowieso die Notwendigkeit eines Programmers hier nicht, er hat nen Arduino mit Bootloader und avrdude lässt sich als externes Tool auch im Atmel Studio einbinden.
Mans A. schrieb: > Aber habe ich das richtig verstanden. Man hat diesen Programmer nur > deshalb, um verschiedene Sachen damit zu machen. Hmm, was soll man dazu sagen? Ich habe auch Messer und Gabeln, um damit verschiedene Dinge zu machen. Auf dem Easy Module Shield befinden sich ein paar Bauteile, mit denen man erste Programmierversuche anstellen kann ohne sich großartig mit Steckbrett, Kabeln und Bauteilen befassen zu müssen. Für die ersten Schritte ist das keine schlechte Idee, denn wenn du sowohl Hardware als auch Software gleichzeitig selber aufbaust und es funktioniert nicht, wird die Fehlersuche wesentlich schwerer. Aber klar, du kannst deine Peripherie auch auf einem Steckbrett zusammen stöpseln. Wenn man klein und einfach anfängt, spricht nichts dagegen. Außerdem gibt es ja auch viele vorgefertigte Module, die man auf dem Steckbrett verwenden kann. Für ein paar einzelne LEDs spielt die Frage "Modul oder nicht" ohnehin keine Rolle. > Am Anfang habe ich mit der Arduino-Software programmiert > (siehe Anhang), was ist der Unterschied zwischen dieser > Software und Atmel Studio 7 bzw. MBLABX? Die Arduino IDE wird mit dem Arduino Framework verwendet. Das ist ein Baukasten mit (überwiegend) sehr einfachen anzuwendenden Software-Modulen. Wenn du mit Arduino programmierst, arbeitest du primär mit der Dokumentation von Arduino. > Viele benutzen die Befehle pinMode(), digitalWrite(),... > Damit komme ich in meinem Studium nicht weit, da wird mit > Bitmanipulation gearbeitet etc. Dann möchtest du auf die Nutzung des Arduino Frameworks verzichten. Im Prinzip hindert dich die Arduino IDE nicht daran, direkt auf Register zuzugreifen und einzelne Bits zu manipulieren. Du musst nur wissen, dass Arduino einen Timer für sich beansprucht. Was ich in der Arduino IDE am meisten vermisse ist die automatische Eingabeergänzung und die Möglichkeit, mit Strg-Mausklick zwischen Dateien hin und her zu springen. Also wenn du z.B. den Quelltext von digitalWrite() sehen willst, würdest du mit Strg-Klick auf diesen Namen zu dessen Quelltext springen. Und wenn du "digi" eintippst, listet die IDE alle Funktionen auf, deren Namen damit beginnt. Außerdem zeigt die IDE Fehler schon während der Eingabe an, nicht erst beim compilieren. In "richtigen" Entwicklungsumgebungen sind das seit den 90er Jahren völlig selbstverständliche Funktionen. Ich benutze das Arduino Framework ausschließlich für Projekte mit dem ESP8266. Als Editor benutze ich aber eine "richtige" IDE. Atmel Studio und MPLABX sind ausgewachsene Entwicklungsumgebungen. Ob du sie mit oder ohne Framework verwendest, bleibt dir überlassen. Die meisten Entwickler scheinen es ohne Framework zu benutzen. Wenn du ohne Framework programmierst, arbeitest du primär mit der Dokumentation vom Chip-Hersteller. Bis also näher an der Hardware. Anstatt Funktionen aufzurufen, schriebst du bestimmte Zahlen in Register, so dass der Mikrocontroller tut, was er soll. Ein großer Unterschied ist, dass du mit der Arduiono IDE nicht debuggen kannst, mit den anderen aber schon - sofern du einen entsprechenden Adapter (Atmel ICE) hast. Debuggen bedeutet, du kannst das Programm zu beliebigen Zeitpunkten pausieren und die den Inhalt des Speichers und den Zustand der Register angucken. Du kannst das Programm auch Zeile für Zeile ausführen und dabei beobachten, wie sich der Inhalt von Variablen verändert. Wenn du es mit dem Atmel Studio oder MPLABX einfach haben willst, dann besorge dir einen Programmieradapter, der STK500 kompatibel ist. Damit kann man nicht Debuggen. Wenn du Geld hast, dann lieber einen "Atmel ICE", denn damit kannst du auch debuggen. Den Arduino Bootloader kann man (wie René schrieb) auch benutzen, indem man Fremdsoftware (nämlich avrdude oder eine GUI dazu) in das Atmel Studio einbindet. Avrdude überträgt das compilierte Programm über USB zum Bootloader, der sich im Mikrocontroller befindet. Und dieser "brennt" es in den Flash Speicher ein. Ist ein bisschen umständlicher, aber daran gewöhnt man sich schnell. Genau genommen muss das fremde Programm nicht einmal "einbinden", man kann es auch parallel zur IDE starten und benutzen.
Mans A. schrieb: > Vielen Dank! Sehr einfach und verständlich erklärt! > > > Mein Prof benutzt bzw. empfiehlt das Easy Module Shield. Welche Uni/HAW. Da sollte alles in Deinen Praktikumsunterlagen beschrieben sein.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.