Hallo zusammen Seit einiger Zeit nutze ich das Stk500 board um einen Atmega8 via AVR Studio oder Programmer's Note Pad zu programmieren(ISP). Da die Arduino IDE sehr viele vorprogrammierte Funktionen liefert und sich deshalb kleine Projekte schneller realisieren lassen, wollte ich diese in Verbindung mit dem Stk500 nutzen. Im Internet habe ich mitbekommen, dass es möglich sein sollte eine hex Datei mit der Arduino IDE zu erstellen und diese via AVR Studio wie gewohnt auf den Chip zu brennen (dann bräuchte ich auch keinen Bootloader?). Hier der Link: http://forum.arduino.cc/index.php/topic,30200.0.html Meine Frage ist nun ob dies so einfach geht und was man sonst noch alles berücksichtigen muss? Normalerweise nutze ich ein Makefile, womit ich dem Compiler mitteile um welchen Chip es sich handelt und mit welcher Frequenz er betrieben wird, wie mach ich das mit der Arduino IDE? Muss ich sonst noch Einstellungen vornehmen? Wäre sehr dankbar um eure Hilfe! lG Roman
Roman schrieb: > Meine Frage ist nun ob dies so einfach geht Ja Roman schrieb: > Normalerweise nutze ich ein Makefile, womit ich > dem Compiler mitteile um welchen Chip es sich handelt und mit welcher > Frequenz er betrieben wird, wie mach ich das mit der Arduino IDE? Arduino IDE aufmachen und dann: Tools --> Board und dann das board aussuchen, auf dem dein Controller verbaut ist. Die Arduino-Boards laufen (meines wissens nach) alle mit der max. Frequenz, in der regel also 16MHz, das kann man (wieder meines wissens nach) in der Arduino IDE auch nicht einstellen, weil es ja auch nicht nötig ist bei den Boards. Ich denke das mit den Frequenzen wird in der IDE hardgecoded sein. Ich glaube aber auch, das es dem Compiler herzlich egal ist, wie schnell der Controller arbeitet ;) Roman schrieb: > Muss ich sonst noch Einstellungen vornehmen? Da du nicht mit der ArduinoIDE flashen willst, brauchst du nur das Board einstellen. Grüße
Hallo Kaj Mein Problem ist aber, dass ich ein Stk500 board besitze und keins von Arduino. Bei den boards in der IDE kann man das Stk500 gar nicht auswählen. Ich möchte die Arduino IDE nur dazu benutzen eine Hex Datei zu erstellen, welche ich dann mit AVR Studio 5 via meinem Stk500 auf den Atmega8 brennen kann. Ist das möglich?
Roman schrieb: > Hallo Kaj > > Mein Problem ist aber, dass ich ein Stk500 board besitze und keins von > Arduino. Dann such dir irgendeines aus, auf dem genau der AVR-Typ verbaut ist, den du in deinem STK stecken hast. > erstellen, welche ich dann mit AVR Studio 5 via meinem Stk500 auf den > Atmega8 brennen kann. Also wählst du ein Arduino Board aus, auf dem ein Mega8 verbaut ist. Es geht doch nur darum, dass der Compiler den Code für den richtigen Prozessor erzeugt. Mehr nicht. In der Arduino IDE ist das dann eben mit dem Board verknüpft, weil die Arduino Leute wissen, dass ein xyz Chip darauf verbaut ist.
:
Bearbeitet durch User
Ja, indem du in der Arduino IDE ein x-beliebiges Board mit einem Atmega8 auswählst. Oder du kopierst einfach die entpsrechenden Quelldateien von der Arduino-Library in dein Projekt und nutzt das AVR Studio wie sonst auch.
Interessant wird dann allerdings die Fragestellung, auf welchem Portpin dann eigentlich ein digitalWrite operiert. Denn der Zusammenhang von Port und Portbit wurde ja in der Arduino Welt zugunsten einer Durchnummerierung aufgegeben - was dann auch von so manch anderen nützlichen Klassen benutzt wird. Da heißt es dann eben: die R/W Leitung eines LCD ist am digitalen Ausgang 5 anzuschliessen (bzw. im Programm wird diese Zuordnung mit dem digitalen Ausgang 5 der LCD Klasse mitgeteilt). D.h. da ist für dich dann der prinzipielle Aufbau des von dir eingestellten Boards schon auch wieder interessant, weil du über diese Board-Bezeichnung den Zusammenhang von Arduino Anschlussnummer und Port/Pin herstellen musst.
Du kompilierst Dein Programm in der Arduino-IDE. In Windows findest Du einen temp Ordner unter: C:\Dokumente und Einstellungen\..Benutzername..\Lokale Einstellungen\Temp\ Dann ist dort der letzte Ordner build ..(viele Ziffern).. .tmp In diesem Ordner liegt dann das HEX-File, welches Du mit einem Programmer Deiner Wahl auf den Zielprozessor übertragen kannst. Vorbedingung, dass Du dieses File verwenden kannst, ist wie K.-Heinz schon geschrieben hat, dass Du die Vorgaben der Portbelegung und die Taktfrequenz von 16MHz auf Deinem Zielsystem einhälst. Auch solltest Du beim kompilieren des Programm das passende Arduino-Board ausgesucht haben (gleicher Prozessor). Gruß Ein Gast
Nachsatz: Sollten doch abweichende Taktfrequenzen des Ziielsystems vorkommen, so ist dies auch kein Beinbruch: solange Du im Hinterkopf behälst, dass alle Zeiten bei einem 8MHz Atmega8 (im Auslieferzustand) doppelt solange dauern. Beispiel: Delay(1000) auf einem 16MHz-System = 1000ms auf einem 8MHz-System = 2000ms also folgt daraus Delay(1000/2) = 1000ms bei 8Mhz Takt. (diese aber gleich im Kopf ausrechnen und nicht dem Prozessor machen lassen.) Ein Gast
Karl Heinz schrieb: > Interessant wird dann allerdings die Fragestellung, auf welchem Portpin > dann eigentlich ein digitalWrite operiert. "The pin mapping for the (Atmega8,) Atmega168 and the 328 is roughly the same." http://arduino.cc/en/Hacking/PinMapping Ansonsten die Boards.txt erweitern wie z.B. beschrieben in http://achuwilson.wordpress.com/2011/12/15/arduino-ide-for-programming-atmega-microcontrollers/
1 | atmega8.name=ATmega8 @8MHz |
2 | |
3 | atmega8.upload.using=usbasp |
4 | atmega8.upload.protocol=usb |
5 | atmega8.upload.maximum_size=8192 |
6 | atmega8.upload.speed=38400 |
7 | |
8 | atmega8.bootloader.low_fuses=0xef |
9 | atmega8.bootloader.high_fuses=0xc4 |
10 | atmega8.bootloader.path=atmega8_ |
11 | atmega8.bootloader.file=ATmegaBOOT.hex |
12 | atmega8.bootloader.unlock_bits=0x3F |
13 | atmega8.bootloader.lock_bits=0x0F |
14 | |
15 | atmega8.build.mcu=atmega8 |
16 | atmega8.build.f_cpu=8000000L |
17 | atmega8.build.core=arduino |
:
Bearbeitet durch User
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.