Hallo,
mein Name ist Björn, 40 Jahre alt und von der Ausbildung her
Energieelektroniker.
Über ein Projekt meines Sohnes in der Berufschule bin ich, nach dem
Junior das Interesse verloren hat, an einen Asuro geraten und habe auch
schon eine Weile mit dem Teil "herumgespielt".
Alles schön und gut.
Bei Pollin habe ich mir dann so ein AVR Evaluätionsboard gekauft und
auch so einen Arduino SMD Kit.
Schön, aber wenn ich das Ein oder Andere Beispiel aus dem Forum hier für
den ATmega 328P oder den ATmega 8 testen will, dann streiken die
Editoren für Arduino und Asuro mit einer großen Menge Fehlermeldungen.
Viele von den Befehlen, die Ihr hier in den Codes verwendet sind gar
nicht in Asuro oder Arduino beschrieben. Auch viele von den Teilen, die
man so bei Robotik Hardware kaufen kann, die diese "SPI" Schnittstelle
haben, laufen einfach nicht.
Ich denke mal, es liegt daran, dass Arduino oder Asuro gar nicht in
"echtem" C programmiert werden, sondern in einer Sonderform.
Wie steigt man denn nun eigentlich ein, wenn man SPI, ADC, USART usw. in
C nutzen will ?
Oder ist das Alles nur eine Sache von diesen #include Sachen oben am
Code ?
Viele Beispiele aus den Tutorial von AVR und AVR GCC klappen, aber nicht
alle und nicht Alle auf allen Systemen. Mit WinAVR gehen die meisten
Sachen aus dem AVR GCC Tutorial, aber keine Asuro / Arduino Sachen. Mit
dem Arduino Editor kann ich die Asuro Sachen zwar schreiben und
umwandeln, aber ich kriege die Sachen nicht in den Asuro rein. Mit
WinAVR kann ich dann eine hex Datei machen, die geht aber weder in
Arduino, noch in Asuro. Auf dem AVR Evaltuationsboard geht die Datei
dann rein, aber ich kann das Proramm nicht testen, weil ja Sensoren und
so fehlen.
Meine Junior habe ich schon gefragt, aber der war so schlecht in dem
Fach, dass es sich nicht lohnt den zu fragen.
Also, wie ausser Kerningham / Richie (R.I.P.) und AVR GCC schaffe ich
einen Einstieg in C, der für Alles passt ?
Danke schon einmal.
Björn
Björn W. schrieb:> Ich denke mal, es liegt daran, dass Arduino oder Asuro gar nicht in> "echtem" C programmiert werden, sondern in einer Sonderform.>> Wie steigt man denn nun eigentlich ein, wenn man SPI, ADC, USART usw. in> C nutzen will ?
Hallo Björn
Ich denke Du bringst da ein paar Dinge durcheinander. C bleibt C. Egal
wofür. Der Unterschied ist lediglich bei der Hardwarenahen
Programmierung, dass eben die Hardware ändert und dementsprechend anders
angesprochen wird.
Ein AVR C Programm funktioniert in den wenigsten Fällen für einen
anderen Kontroller.
Das bedeutet für Dich, dass Du dediziert C mit Deinem verwendeten
Kontroller lernen musst.
Grüsse,
René
Rene H. schrieb:> C bleibt C.
Arduino ist aber C++, mit einem Framework, das für den Nutzer eine
Blackbox ist, und mit einer drumrumgewickelten IDE, die völlig in
Java-Code festgezurrt ist.
Moin,
damit das Ardino und Asuro wohl auch Sonderformen von C sind hast
richtig erkannt. Die Programmierprogramme(IDE) verschleiern dir einiges.
Ich würde dir empfehlen arbeite ein C-Tutorial durch, entweder im Netz
oder mit einem Buch. Und zwar meine ich C für den PC. Wenn du das hast
schaust du dir auf dieser Seite das AVR GCC Tutorial an, und arbeitest
das durch. das kannst du sogar mit dem Arduino Board machen nur halt mit
einem anderen Programmierporgramm, bsb AVR Studio.
Also erst mal C generell lernen und damit vertraut werden. Dann auf den
µC umsteigen. Klar denkst du jetzt ich hab doch arduino usw.
programmiert aber der sprach umfang dort ist recht begrenzt und es gibt
viele Bibliotheken im Hintergrund. Das sind die Befehle/Funktionen die
der AVR GCC nicht kennt. Die gibts in C auch nicht. Diese Befehle haben
die Arduino Jungs selbst in C/C++ geschrieben.
Ich würde sagen jenachdem was du vorhast. Kannst du auch einfach bei
Arduino bleiben. Die haben ne große Community und das du damit ein
Projekt nicht realisieren kannst glaube ich nicht.
Wenn du jedoch verstehen willst was so ein µC macht. Dann fang ganz
unten an mit Assambler. Dafü gibts hier auch schönes Tut.
MfG
Tec
Also, dann lerne und schreibe ich die ganze Zeit schon C ??
Meint Ihr mit "Hardwarenah" so Sachen wie DDRB, SPEED, oder PIN ?
Wenn es "nur Das" ist, dann muß ich aber noch eine Menge lernen, weil da
scheint ja "der Mikrocontroller erst anzufangen" ...
Was ist denn dann näher an der Hardware ?
Asuro ? Arduino ? oder Beides vergessen und mit dem AVR Evaluationsboard
arbeiten und das Erweiterungsboard dazu aufbauen um LCD / LED und Taster
zu haben ?
Björn
Björn W. schrieb:> dann streiken die> Editoren für Arduino und Asuro mit einer großen Menge Fehlermeldungen.
Der Trick ist eigentlich nur, diese Fehlermeldungen auch zu lesen.
Und wenn Du sie nicht verstehst, einfach copy&paste hier rein und
fragen.
Nur die ersten 1..3 Meldungen, der Rest sind meistens Folgefehler.
Und den dazugehörenden Code als Anhang, also das *.h, *.c bzw. *.cpp.
Aber nicht als *.doc, *.bmp, *.png oder ähnlichen Unsinn!
Peter
Eine eigene Frage?
Dieser Thread ist über 14 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.