.h en .cpp files in de Arduino-IDE compileren

Beste vrienden, 8)

Ik bezit een geigerteller met web-functionaliteit, bijna gelijk aan deze . De teller heeft een atmel AT328P als hart en een ENC28j60 als ethernet poort. De volledige 'open' source code is beschikbaar in ccp en h modules en moet gecompileerd worden. Ik weet niet echt hoe een C-compiler werkt en hoe die de .h en .cpp files gebruikt. Daardoor kan ik geen wijzigingen in de code maken. Mijn wens is om de teller met WiFi uit te rusten i.p.v. bedraad-ethernet.

Omdat het een AVR processor betreft moet het in principe ook mogelijk zijn dit in de Arduino IDE te compileren.
Maar daar zit het probleem, de IDE genereert alleen maar foutmeldingen als ik alle h en ccp files in een sketch zet.

Pas als ik het voor elkaar heb om deze code door de Arduino te laten compileren dan kan gaan kijken welke wijzigingen ik moet aanbrengen en kan ik dit testen.

Ik heb al hier en daar gezocht hoe ik dit moet aanpakken, maar een aanwijzing of handleiding heb ik niet kunnen vinden.

Heeft iemand de gouden tip of een gouden link, hoe ik (deze) source code in de Arduino-IDE kan compileren?

pak eens een simpele library die je hebt, daar zie je de opbouw van een programma, voor de arduino zul je alles in aparte directories moeten zetten, waar andere compilers zoals arduino visual niet zo moeilijk doen.

Dit lijkt sterk op een Eclipse project gezien de structuur. Je zou bijvoorbeeld de Eclipse versie kunnen nemen met de plugin van Jantje. Dan zou je bijvoorbeeld de code eerst kunnen compileren met een AVR plugin en daarna omzetten naar Arduino. Zoals Paul al aangeeft zou je elke source folder kunnen verplaatsten naar een Arduino library.

<nature>de.innot.avreclipse.core.avrnature</nature>

Gemaakt met de avr plugin dus.

Gouden tip?
Zet alles in een library en hernoem main naar Mijnmain.
Maak een sketch in arduino en roep Mijnmain op in setup
Er zal wel meer werk aan zijn...
Met vriendelijke groet
Jantje

Dank voor de tips, de gouden tip was om de IDE weer terug te zetten op de UNO. Hij stond namelijk nog steeds op het ESP board en dat verklaarde +99% van de foutmeldingen die gewoon nergens op sloegen :-[

Het was dus een 'beginnersfout' die ik hier maakte.

Het compileren loopt nu een heel eind maar deze vervelende foutmelding kom ik niet uit:

/tmp/build8210283663735752359.tmp/core.a(wiring.c.o): In function `__vector_16':
/home/user1/Desktop/Arduino/arduino-1.6.4/hardware/arduino/avr/cores/arduino/wiring.c:49: multiple definition of `__vector_16'
/tmp/build8210283663735752359.tmp/URM.cpp.o:/home/user1/Desktop/Arduino/arduino-1.6.4/uRADMonitor.ino:177: first defined here
collect2: error: ld returned 1 exit status
Error compiling.

Wat op deze regel slaat:
// timer0 overflow interrupt event to be executed every 2.048ms here when on 8MHz, and every 1.024ms for 16MHz */
ISR (TIMER0_OVF_vect) { time.TimerEvent(); }

Hier kom ik voorlopig even niet uit. In ieder geval geeft het forum ca 15 hits op deze melding, dus ik heb nog wel wat te lezen voor vanavond.

wat staat er op uRADMonitor.ino:177?

ISR (TIMER0_OVF_vect) { time.TimerEvent(); }

deze regel

das dus 2 maal hetzelfde. Normaal dat de linker er over klaagt dus.
Nu moet je proberen te begrijpen wat die 2 stukjes code doen en hoe ze zich ten opzichte van elkaar gedragen. Wanneer opgeroepen .....
Ik zou in deze verwachten dat beide in een stukje initialisatie code staan. De vraag is dan wat er allemaal weg kan/moet.
Met vriendelijke groet
Jantje

Ik laat het maar even bezinken.