ich habe bisher mit ATmegas8535 gearbeitet (Assembler, Laden über PonyProg) und dann mit dem Butterfly-Datenlogger (GCC, Laden über bootloader). Registerprogrammierung ist mir also vertraut und der GCC zum Teil auch. Nun möchte ich den GCC mit dem Arduino nano3 verwenden. Natürlich kann ich das neueste WinAVR installieren und schrittweise den Code aufbauen indem ich Teil für Teil in Betrieb nehme und mich dabei an Beispielprogrammen orientiere. Frage: Macht es Sinn sich mit der Arduino-Umgebung nebst IDE näher zu befassen? Zwingend ist das ja nicht erforderlich. Ein ISP-Stecker ist ja auch drauf auf der Platine. Über den Bootloader müsste ich doch den Code laden können so wie ich das mit dem Butterfly gemacht hatte. Dabei hatte ich den Code geladen über das AVR-Studio. Ist es sinnvoll so vorzugehen?
:
Bearbeitet durch User
In der IDE drückt man eine Knopf zum Compilieren, einen zweiten dann zum Hochladen. Das ist natürlich viel zu einfach für Leute, die richtige Tools kennen. Von daher würde ich die IDE weglassen, sonst hätte man nichts zu prokeln. Hinter der IDE steckt auch ein Gnu C++. Der verwirrt ja auch weil man ja nur C machen möchte.
PittyJ schrieb: > ... einen zweiten dann zum Hochladen. Nur dass dieser zweite auch jedesmal den Compiler anstößt - ob nötig oder nicht. Man kann auch Atmel Studio benutzen und sich dazu die Arduino Ide for Visual Studio von Visual Micro installieren.
PittyJ schrieb: > In der IDE drückt man eine Knopf zum Compilieren, einen zweiten dann zum > Hochladen. also dann ist die IDE von Arduino empfehlenswert? > Hinter der IDE steckt auch ein Gnu C++. Der verwirrt ja auch weil man ja > nur C machen möchte. Verwirrung brauche ich keine. Ich kam gut mit einem Editor, GCC und Make zurecht. Versuche es komfortabler zu machen hatten bei dem Datenloggerprojekt damals zur Folge daß der Code nicht mehr rein passte. Es war nicht einfach herauszufinden woran das lag. Irgendwann gab ich es auf.
Mike schrieb: > Man kann auch Atmel Studio benutzen davon hatte ich nur den kleinen Teil benutzt der den Code dann seriell in den Butterfly geladen hat. Mehr brauche ich ja nicht. Alternativ geht es auch über den ISP-Stecker. Das ist halt etwas unbequemer wenn man oft Änderungen hat. > und sich dazu die Arduino Ide for Visual Studio von Visual Micro installieren. Macht das Sinn die Arduino IDE zu installieren? Ist da wirklich Nutzen? Der Editor zeigt mir ja Zeilennummern an. GCC zeigt in welcher Zeile es klemmt. Zeigt die Arduino IDE das komfortabler an? Macht es Sinn die Bibliotheken von Arduino zu nutzen? Sind die transparent, d.h. sieht man welcher C-Code dahintersteckt?
Hi Matthias, vor kurzem habe ich auch mit so einem Teil herum gebastelt. Du brauchst die Arduino-IDE nicht, aber wenn du keine komplizierten Projekte hast, kannst Du sie auch benutzen. Wenn Du "richtig" in C programmieren möchtest kannst Du den ISP Anschluß nutzen. Du musst aber die Flags anpassen damit der Chip nicht in den Bootloader geht sondern Deinen Code direkt aufruft. Den Bootloader müsstest Du statt des ISP auch ohne die IDE nutzen können. Beim Nano ist es etwas kompliziert weil die USB-Schnittstelle als Serielle-Schnittstelle für den Bootloader genutzt wird aber auch als USB-Schnittstelle im eigenen Programm verwendet werden kann. Wenn Du den Reset-Knopf drückst steckt der Nano im Bootloader (falls der Chip noch original ist) und die LED auf dem Board blinkt. Irgendwann geht die LED aus (oder bleibt dauerhaft an) dann befindet sich das Board in dem Programm das installiert wurde. Wenn der Bootloader (zum flashen) verwendet werden soll, muss sich das Board auch im Bootloader-Modus befinden, sonst erkennt der PC das angeschlossene Board nicht als USB-Serielle Schnittstelle. Darum wird empfohlen den Reset Taster zu drücken und fest zu halten, dann den "Flash-Vorgang" in der IDE zu starten und den Reset-Taster los zu lassen, damit der Bootloader Modus zuverlässig erkannt wird ... ist so umständlich wie es klingt. Ich habe noch nicht ausprobiert was passiert wenn man avrude auf die serielle Schnittstelle des Bootloaders los lässt. Eigentlich müsste das möglich sein hxxp://ed.am/dev/make/arduino-mk/arduino.mk (Die Forumsoftware behauptet der Link wäre spam ... ist er aber nicht)
Lad Dir doch einfach mal die IDE runter und schau sie Dir an. Da wird nix installiert , sondern das ganze wird einfach in ein Verzeichnis entpackt. Die beiliegende .inf Datei für den Virtuellen Com-Port wirst du wohl brauchen um den Arduino über USB zu programmieren. Und ja, AVRDUDE kann auch direkt über den Bootloader das Programm auf den AVR schaufeln, und ja, das geht aus allen Umgebungen die AVRDUDE zum Upload nutzen. Das mit dem Reset und den beiden USB-modi gilt für den Leonardo, da der keinen externen USB-Seriell Converter benutzt, sondern die USB im Microcontroler selbst verbaut hat.
Wolfgang Heinemann schrieb: > vor kurzem habe ich auch mit so einem Teil herum gebastelt. prima Wolfgang. Vielen Dank für Deine Hinweise ! > Du brauchst die Arduino-IDE nicht, aber wenn du keine komplizierten > Projekte hast, kannst Du sie auch benutzen. da ich diese IDE nicht so gut kenne fällt es mir schwer einzuschätzen ob sie eher Ballast für mich ist oder eine gute Hilfe. > kannst Du den ISP Anschluß nutzen. Du musst aber > die Flags anpassen damit der Chip nicht in den Bootloader geht sondern > Deinen Code direkt aufruft. Du meinst im C-Compiler die Flags anpassen? Vermutlich wird das so ähnlich sein wie beim Butterfly. Den Code und die Makefiles habe ich noch. > USB-Schnittstelle als ser Schnittstelle für Bootloader.. auch als > USB-Schnittstelle im eigenen Programm.. In der Tat habe ich vor über die USB-Buchse und die serielle Schnittstelle dahinter - so wie beim Butterfly über Kommandos den Speicher auszulesen. > Wenn Du den Reset-Knopf drückst steckt der Nano im Bootloader (falls der > Chip noch original ist) und die LED auf dem Board blinkt. Irgendwann > geht die LED aus (oder bleibt dauerhaft an) dann befindet sich das Board > in dem Programm das installiert wurde. Danke für den Hinweis. > Darum wird > empfohlen den Reset Taster zu drücken und fest zu halten, dann den > "Flash-Vorgang" in der IDE zu starten und den Reset-Taster los zu > lassen, damit der Bootloader Modus zuverlässig erkannt wird ... ist so > umständlich wie es klingt. so ist es auch beim Butterfly. Damit kam ich klar. > Ich habe noch nicht ausprobiert was passiert wenn man avrude auf die > serielle Schnittstelle des Bootloaders los lässt. prima wenn es auch komfortablere Möglichkeiten gibt. Momentan reicht mir die Lösung mit der Taste. Schade fand ich daß ich das sehr große Studio damals laden musste um zu flashen. Vielleicht gibts da ja auch ein schlankeres Programm für diesen Zweck? Zum Debuggen hatte ich gerne Text über die serielle Schnittstelle geschickt. Wie schnell geht das denn maximal beim nano3?
Thomas Lembke schrieb: > Lad Dir doch einfach mal die IDE runter und schau sie Dir an. ok. Danke Thomas. Du meinst http://arduino.cc/de/Guide/Environment http://arduino.cc/en/Main/Software > Da wird nix installiert , sondern das ganze wird einfach in ein Verzeichnis entpackt. also nicht Windows Installer? Stattdessen Windows (ZIP file)? > Die beiliegende .inf Datei für den Virtuellen Com-Port wirst > du wohl brauchen um den Arduino über USB zu programmieren. der Treiber für den FTDI chip? > Und ja, AVRDUDE kann auch direkt über den Bootloader das Programm auf > den AVR schaufeln, und ja, das geht aus allen Umgebungen die AVRDUDE zum > Upload nutzen. bisher hatte ich AVRDUDE nicht genutzt. > Das mit dem Reset und den beiden USB-modi gilt für den Leonardo, da der > keinen externen USB-Seriell Converter benutzt, sondern die USB im > Microcontroler selbst verbaut hat. ich habe noch ein kleines board mit einem ATmega32u4 den ich nachgerüstet hatte. Keine Ahnung welcher Bootloader auf diesem chip drauf ist. Dieses board stelle ich erst mal zurück.
>> Da wird nix installiert , sondern das ganze wird einfach in ein >>Verzeichnis entpackt. >also nicht Windows Installer? Stattdessen Windows (ZIP file)? gehe zu www.arduino.cc, weiter zu Download und klicke an. Da gibt es wahlweise ein exe oder ein zip. Das heraus zu finden ging schneller, als deine Frage zu formulieren. Probiere es doch einfach aus. Da hättest du einen entspannten Abend gehabt. Statt dessen nur Fragen, die du hättest selber durch herunterladen ausprobieren können.
Also, ich habe noch mal nach geschaut. Ich habe keinen Nano sondern einen Micro und der verwendet einen ATmega32u4. In der Arduino-IDE wird das Board wie ein Leonardo behandelt. Es kann sein das sich Dein Board anders verhält. Ich habe mit dem Board einen Kabeltester gebaut und hatte zu wenig Pins, weil ich gleichzeitig eine LCD-Anzeige benutzt habe. Da ich zum ersten mal mit der IDE gearbeitet habe und mit den Pins nicht auskam habe ich mit dem Gedanken gespielt das Board ohne IDE direkt in C zu programmieren. Am Ende habe ich es dann aber doch hin bekommen die Ausgabepins vom LCD gleichzeitig für den Kabeltester zu verwenden, darum habe ich meine Tests mit der direkten Programmierung in C wieder abgebrochen. Allerdings habe ich schon einige Zeit darauf verwendet die Pin-Bezeichnungen heraus zu finden. Für den von mir verwendeten Micro habe ich keine vernünftige Beschreibung gefunden auf der alle Pins drauf waren. Ich habe die Pins letztendlich ausprobiert ...
Wolfgang Heinemann schrieb: > Ich habe mit dem Board einen Kabeltester gebaut und hatte zu wenig Pins, > weil ich gleichzeitig eine LCD-Anzeige benutzt habe. Da ich zum ersten > mal mit der IDE gearbeitet habe und mit den Pins nicht auskam habe ich > mit dem Gedanken gespielt das Board ohne IDE direkt in C zu > programmieren. Wenn Du so ein zweizeiliges 1602 Display hast, kannst Du für 1 Euro mit dem "IIC/I2C/TWI/SPI Serial Interface Board" viele Pins sparen: http://www.ebay.de/itm/Good-IIC-I2C-TWI-SPI-Serial-Interface-Board-Module-Port-For-Arduino-1602LCD-ESY1-/121217779761?pt=LH_DefaultDomain_0&hash=item1c39248831
:
Bearbeitet durch User
Hi Albert, > Wenn Du so ein zweizeiliges 1602 Display hast, kannst Du für 1 Euro mit > dem "IIC/I2C/TWI/SPI Serial Interface Board" viele Pins sparen: > > http://www.ebay.de/itm/Good-IIC-I2C-TWI-SPI-Serial-Interface-Board-Module-Port-For-Arduino-1602LCD-ESY1-/121217779761?pt=LH_DefaultDomain_0&hash=item1c39248831 Danke für den Hinweis, aber es ging mal wieder darum schnell mit vorhandenen Mitteln den Kabeltester zu bauen. Im Prinzip war das auch kein Problem. Für den Tester brauchte ich eh Ausgabe-Pins und die Datenleitungen + RS der LCD-Anzeige lassen sich da wunderbar verwenden. Wichtig ist nur die Testpins mit Serienwiderständen zu entkoppeln, sonst kann es bei Kurzschlüsseln im Testkabel zu seltsamen Zeichen auf dem Display kommen ... ;-) Lediglich den EN der LCD-Anzeige konnte ich nicht doppelt verwenden. Eine I2C-Schnittstelle hätte darum auch nicht weniger Pins gekostet ...
:
Bearbeitet durch User
Wolfgang Heinemann schrieb: > Also, ich habe noch mal nach geschaut. Ich habe keinen Nano sondern > einen Micro und der verwendet einen ATmega32u4. Danke Wolfgang. Meins ist so ein Teensy-Board. Da habe ich die CPU hochgerüstet.
Albert M. schrieb: > Wenn Du so ein zweizeiliges 1602 Display hast, kannst Du für 1 Euro mit > dem "IIC/I2C/TWI/SPI Serial Interface Board" viele Pins sparen Danke für den Hinweis Albert. Das Board setzt also I2C auf parallel um. Die Adresse kann man einstellen. Gibts da auch eine extra SPI-Version? Oder wie geht das dann damit?
der letzte Tag des Jahres. Gerne möchte ich ohne große Softwarepakete außer dem bereits installierten WINAVR zu installieren ein kleines Projekt machen: Beschreiben serielles SRAM. Der Baustein ist weitgehend angeklemmt. Dazu suche ich erst mal ein Dummyprojekt für den ATmega328P und WINAVR. Ich habe so ein Projekt für den Butterfly-Datenlogger. Dabei wird jedoch ein anderer AVR programmiert. Ich kann das umschreiben. Wäre mir jedoch lieber wenn ich als Basis etwas für den ATmega328P nutzen könnte. Wo kann ich hier etwas Passendes finden? Vielen Dank für Hinweise.
Würde mich auch interessieren wie man ein Make file für den Nano anpasst, sodass man über usb das hex file schicken kann.
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.