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.
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