Arduino Forum upgrade scheduled for Monday, October 20th, 11am-4pm (CEST). Sorry for the inconvenience!
Pages: [1] 2   Go Down
Author Topic: main.c aufruf aus dem ordner ".../cores/arduino"  (Read 1981 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 1
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

wann wird diese "main.c" aufrufen aus dem ordner ".../cores/arduino" ?

da wird eine init aufgerufen die sich in der "wiring.c" befindet.

gruss
Logged

Neuss
Offline Offline
Full Member
***
Karma: 1
Posts: 200
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

wann wird diese "main.c" aufrufen aus dem ordner ".../cores/arduino" ?

Ich denke, wie bei jedem anderen guten C-Programm beim Start des Programms (d.h. hier üblicherweise bei Reset).
Die Arduino-IDE packt den main()-Code automatisch zu deinem Sketch dazu und kompiliert das ganze Zeug dann.

Wenn man das Programm mit dem AVR Studio statt der arduino-IDE übersetzt, kommt man an den vom Compiler erzeugten Assembler-Code (.lss-Datei) und dort sieht man, dass nach einem Sprung nach Adresse 0 und ein wenig Vorgeplänkel die besagte Funktion main() aufgerufen wird.

Quote

da wird eine init aufgerufen die sich in der "wiring.c" befindet.

...und damit nach dem Start so ein bisschen an den Timern/Precaler gefummelt, damit ein paar der Funktionen aus der Arduino-Library richtig funktionieren.

...und den Rest vom Sketch musst du ja in in setup() und loop() reinpacken, die main() dann freundlicherweise für dich aufruft.
« Last Edit: February 15, 2011, 07:05:26 am by voithian » Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

jup, danke.

dan werde ich die init .c ändern, wenn die hauptsächliche mit dem timer rumplänkelt.

gruss
Logged

Neuss
Offline Offline
Full Member
***
Karma: 1
Posts: 200
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

dan werde ich die init .c ändern, wenn die hauptsächliche mit dem timer rumplänkelt.

Ich weiss ja nicht, warum du an der wiring.c rumfummeln willst? Eigene Initialisierungen kannst du ja gut in setup() unterbringen. Wird doch in main.cpp direkt hinter init() aufgerufen.

Außer natürlich, dir gefällt absolut nicht, was in init() ausgeführt wird und du möchtest das wegwerfen. Aber dann musst du dir natürlich der Konsequenzen bewusst sein!

Oder sonst kannst du in deinem Sketch eine Funktion myInit() schreiben, die deine eigenen Initialisierungen enthält. Dann den Aufruf von myInit() in main.cpp vor oder hinter dem Aufruf von init() einfügen und in der Datei wiring.h einen Funktionsprototypen für myInit() einfügen (z.B. hinter den Funktionsprototypen für setup() und loop() ).

« Last Edit: February 15, 2011, 07:58:56 am by voithian » Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Ich weiss ja nicht, warum du an der init.c rumfummeln willst?

die enthält für meine vorhaben unnütze bremsklötze, die ich beseitigen will.
diese wiring.c(2006) ist total überaltet und entspricht nicht mehr den regularium bzw den c-standart von winavr-c.
da werden veraltete namen genutzt zb für die interrups(SIGNAL.... ist veraltet) und andere klamotten.


gruss
« Last Edit: February 15, 2011, 07:53:00 am by funkheld » Logged

Neuss
Offline Offline
Full Member
***
Karma: 1
Posts: 200
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Ich weiss ja nicht, warum du an der init.c rumfummeln willst?

die enthält für meine vorhaben unnütze bremsklötze, die ich beseitigen will.
gruss

Nur zur Vermeidung von Verwirrung: Wir sprechen ja wohl beide von wiring.c, nicht von init.c, das so zwischendurch mal auftauchte. Und in wiring.c steckt die Funktion init(), die du aber garnicht anpacken musst, wenn du z.B. SIGNAL durch ISR ersetzen willst.
« Last Edit: February 15, 2011, 08:12:39 am by voithian » Logged

Offline Offline
Full Member
***
Karma: 1
Posts: 107
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

in der init() steckt auch das alte gelumpe "sbi.." usw , das gibt es seit jahren nicht mehr in der winavr-c und ist verpönt.

alos wer mit dem winavr-c auf dem laufenden sein möchte, sollte die ollen kamellen mal rauswerfen.

gruss
Logged

CH
Offline Offline
God Member
*****
Karma: 19
Posts: 704
Book Writer "Arduino Praxiseinstieg"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
dan werde ich die init .c ändern, wenn die hauptsächliche mit dem timer rumplänkelt.

@funkheld
ich werde aus deinen Aussagen und Kommentaren nicht schlau.  smiley-sad
Wenn ich dein bisherigen Posts anschauen, bist du nur am Meckern und am Kritisieren der Arduino IDE. Sorry, dass ich das so direkt sage.

Die Arduino-Entwicklungsumgebung ist sicher nicht das Hightec-Produkt unter den Entwicklungsumgebungen. Aber für das Zielpublikum (Bastler, Tüftler, Künstler, Studenten, Lernbegierige..) ist das eine nützliche Umgebung und erfüllt die Anforderungen um die Arduino-Sketche auf einfache Weise zu testen und auf das Board zu laden.

Die Frage wieso du eigentlich zu Arduino gekommen bist (und nicht weiter mit Bascom arbeitest) wurde schon mal in einem anderen Thread gestellt. Für dich ist das, soweit ich das in Erinnerung habe Hobby. Darum sollte die ganze Materie Spass machen.

Ich höre nur immer "steckt auch das alte gelumpe ..."sbi.." ..das gibt es seit jahren nicht mehr ..Timer und PWM-Gedöns".
Wenn du hier die Core-Funktionalität umbauen und verbessern willst, solltest du dich an das Arduino-Core-Team wenden.

Die sehr nützlichen Beiträge von voithian zeigen doch klar, dass man mit der Standard-IDE gut arbeiten kann. Allfällige Anpassungen können über eine clevere Verwendung von Funktionen etc. realisiert werden.

Wie gesagt, wir wollen Spass mit den Arduino-Anwendungen haben, originelle Lösungen realisieren und nicht die vom Arduino-Team bereitsgestellte und kostenloste Entwicklungsumgebung kritisieren, geschweige denn umbauen  smiley-wink
Logged

Neuss
Offline Offline
Full Member
***
Karma: 1
Posts: 200
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mir geht es sicherlich ähnlich wie funkheld, indem ich mit den Möglichkeiten, die die Arduino-IDE zur Verfügung stellt, nicht immer zufrieden bin.

Aber hier steht es jedem frei, auf eine andere IDE wie AVR Studio mit AVR-GCC umzusteigen und damit sein C-Programm zu erstellen. Dort hat man (fast) alle Freiheiten und Einflussmöglichkeiten, die man sich wünscht und mit ein bisschen Anpassung kann man auch die Arduino-Funktionen aufrufen (wenn man sie nicht total hasst). Oder notfalls aber eben selber für AVR-GCC und die AVR-GCC-Libraries (um)schreiben.

Und dann das Ganze aus AVR Studio per AVRDUDE (mit Bootloader oder Hardware-Programmer) auf das Arduino-Board laden. Die Arduino-Hardware läuft ja problemlos auch mit Programmen, die mit dem AVR Studio erstellt wurden.

So mach ich's persönlich und lass die Arduino-IDE denen, für die sie gedacht ist.
Und ich glaube, diese Vorgehensweise wäre auch für funkheld und seine Anforderungen das günstigste.

Gruß
Wolfgang
« Last Edit: February 15, 2011, 12:28:53 pm by voithian » Logged

CH
Offline Offline
God Member
*****
Karma: 19
Posts: 704
Book Writer "Arduino Praxiseinstieg"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Aber hier steht es jedem frei, auf eine andere IDE wie AVR Studio mit AVR-GCC umzusteigen...
...
So mach ich's persönlich und lass die Arduino-IDE denen, für die sie gedacht ist.

@voithian
So soll es doch sein. Jeder nutzt das Werkzeug welche seine Bedürfnisse abdeckt.
Logged

0
Offline Offline
Faraday Member
**
Karma: 26
Posts: 3525
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Wobei Anfänger sicher auch nichts gegen eine bessere IDE hätten smiley-wink Ich nutze die auch schon lange nicht mehr. Eigentlich nutze ich nur noch Teile der Libraries als Beispiele. Aber jeder wie er es will.

Udo
Logged

Check out my experiments http://blog.blinkenlight.net

CH
Offline Offline
God Member
*****
Karma: 19
Posts: 704
Book Writer "Arduino Praxiseinstieg"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Wobei Anfänger sicher auch nichts gegen eine bessere IDE hätten
Da wünscht sich wohl jeder.  smiley
Aber bei den ersten Schritte mit Arduino wird sich ein Anfänger kaum noch mit einem weiteren Tool rumschlagen wollen. Die Einfachheit der IDE hat hier auch seine Vorteile.
Logged

0
Offline Offline
Faraday Member
**
Karma: 26
Posts: 3525
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Wieso noch ein weiteres Tool? Ich habe nicht gesagt noch eine IDE sondern eine bessere IDE.

Udo
Logged

Check out my experiments http://blog.blinkenlight.net

Heidelberg
Offline Offline
Full Member
***
Karma: 1
Posts: 207
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Man muss den Sinn von Open Source nur vertsehen um zu wissen:

Änderungen -insbesondere die Sinnvollen - werden Einzug halten :-) Aber das vermutlich nicht im deutschen Forum sondern eher bei den Leuten die sich um CORE Angelegenheiten kümmern,
Logged

 

CH
Offline Offline
God Member
*****
Karma: 19
Posts: 704
Book Writer "Arduino Praxiseinstieg"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Wieso noch ein weiteres Tool?
Weil es noch keine bessere IDE gibt. So muss man auf andere Tools ausweichen.  smiley-wink

Wenn es eine verbesserte IDE geben würde, braucht man natürlich keine weiteren Tools.
Logged

Pages: [1] 2   Go Up
Arduino Forum upgrade scheduled for Monday, October 20th, 11am-4pm (CEST). Sorry for the inconvenience!
Jump to: