Hallo Osser,
ich habe jetzt ein wenig weiter mit meinen Arduino Uno R3 Board rumprobiert:
1.
Prinzipell ist es ziemlich einfach, die Eierlegende Wollmilchsau zum Programmieren des Arduino einzusetzen, solange der Code in C geschrieben wird und die Hardware mit Hilfe eigener Bibliotheken angesteuert wird.
Im Makefile muss lediglich MCU=atmega328p gesetzt werden. Dann klappt schon mal das Compilieren. Das Flashen erfolgt dann mit avrdude und der Kommandozeile -v -p atmega328p -c arduino -P com17 -D -U flash:w:"%AF_HEXFILE%":a. Die Version von avrdude sollte aktuell sein, sonst enthält die Datei avrdude.conf nicht den Arduino Treiber. Den richtigen Com-Port erfährt man im Hardware-Manager sobald man das Arduino-Bord das erste Mal in Betrieb nimmt und den Treiber installiert hat.
2.
Unter dem Stichwort "Cduino" kommt man über Google auf eine Seite zum gleichnamigen Projekt. Dort hat sich der Autor die Mühe gemacht, einige Bibliotheken in reinen C-Code zu übersetzen.
3.
Mein Ziel ist es aber, die Bibliotheken und die Compilerversion direkt aus dem Ordner, in dem sich die komplette und unveränderte Arduino-Installation befindet, zu nutzen: http://arduino.cc/en/Main/Software. Den Arduino-Ordner habe ich als Unterordner zur Eierlegenden Wollmilchsau angelegt, um die Pfadangaben möglicht einfach zu halten. Die Bibliotheken befinden sich dort "einige Etagen tiefer" im Ordner cores.
Einen Ansatz für ein neues makefile habe ich unter: http://playground.arduino.cc/Learning/CommandLine gefunden. Am Anfang des makefile findet sich eine ausführliche Anleitung. Leider ist es mir trotzdem noch nicht gelungen, das von mir gewählte Testprogramm zu compilieren.
Ich werde es weiter probieren.//Testprogramm
// Blink: Turns on an LED on for one second, then off for one second...
#include <Arduino.h> //statt WProgram.h
// Pin 13 has an LED connected on most Arduino boards.
int led = 13; // give it a name:
// the setup routine runs once when you press reset:
void setup()
{
pinMode(led, OUTPUT); // initialize the digital pin as an output.
}
// the loop routine runs over and over again forever:
void loop()
{
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Gruss
Ulli
Lesezeichen