Problem med arduino - begriper inte timingen....

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sm5tfx
Inlägg: 114
Blev medlem: 20 juli 2011, 14:28:41
Ort: Gnällbältet

Re: Problem med arduino - begriper inte timingen....

Inlägg av sm5tfx »

@Sodjan (och andra): det händer faktiskt förvånansvärt lite "under huven".
I stort sett fungerar miljön så att den kompilerar de C/C++-filer som ingår i projektet till objektkod i byggkatalogen, därefter läggs sketch-filen ihop med en fast prolog och en, lika fast, epilog och resultatet kompileras som vilken C++-kod som helst med avr-g++.
Arduino-libraries hanteras på samma sätt och i projekt bestående av flera sketch-filer har jag för mig att alla läggs ihop (tillsammans med prolog och epilog) före kompliering enligt ovan.
Sutligen länkas alla objektfilerna som vanligt med avr-ld. Jag minns inte om Arduino-miljön kör en separat översättning till Intel-hex eller om den ställer in avr-ld att generera detta format direkt.

http://arduino.cc/en/Hacking/BuildProcess är klart läsvärd om man vill förstå hur det hänger ihop.

Hur som helst är det inga konstigheter att ersätta den eländiga miljön med sin normala editor och bygga med make som vanligt.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med arduino - begriper inte timingen....

Inlägg av sodjan »

Det där förstår de flesta Arduino användarna inte ett smack av!
Du har så klart inte fel rent tekniskt, men du förstår inte riktigt... :-)
sm5tfx
Inlägg: 114
Blev medlem: 20 juli 2011, 14:28:41
Ort: Gnällbältet

Re: Problem med arduino - begriper inte timingen....

Inlägg av sm5tfx »

Nej... Arduino är ju gjord för att förhindra förståelse, eller var det för att man inte ska behöva förstå? :humm:

Sak samma, om man vill förstå så är det faktiskt ganska väl dokumenterat och inte särskilt komplext.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med arduino - begriper inte timingen....

Inlägg av sodjan »

Ja, det är ju samma problem med alla prylar som är förenklade för
att även de som inte förstår ska kunna använda dom. Arduino
är ju ett väldigt bra exempel på det. De som redan vet vad t.ex
"make" eller "objektkod" är för något behöver ju egentligen
inte Arduino... :-)
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Problem med arduino - begriper inte timingen....

Inlägg av Krille Krokodil »

laban12 skrev:
Krille Krokodil skrev:Nej, det går bra med C eftersom att den overhead som skapas är konstant och du lätt kan justera delay-loopen eller interrupt-rutinen för det...
Jag skulle inte säga att det är "lätt" om det inte står i dokumentationen hur många klockcykler en instruktion kräver. (I alla fall inte den dokumentation jag har, arduino.cc)
Jag avsåg att du skulle göra det mer praktiskt genom att tex mäta med oscilloskopet och justera efter det.

I AVR Studio skulle detta kompileras till betydligt färre instruktioner och det skulle vara enklare att räkna på det, där går också att stega igenom koden och se hur många klockcykler som konsumeras.
laban12
Inlägg: 1199
Blev medlem: 17 april 2008, 16:01:56
Ort: Stockholm

Re: Problem med arduino - begriper inte timingen....

Inlägg av laban12 »

Ja, AVRstudio är det jag använt tidigare... Och därför har jag aldrig för stött på problem med timing eftersom jag hela tiden haft björnkoll på hur många klockcykler som hela tiden passerat.

Tänkte att Arduino skulle underlätta, dels eftersom vissa saker är så mycket enklare i C-kod och dels eftersom jag slipper göra en egen hårdvaruplattform för varje litet projekt.

Har inte hittat någon "manual" eller "dokumenation" som beskriver funktionerna bättre än vad de görs i arduino.cc's referensbibliotek! Finns det? Online alltså.
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Problem med arduino - begriper inte timingen....

Inlägg av Krille Krokodil »

Testa att göra C-projektet i AVR Studio. Här är ett exempel på PWM med timer: http://www.ermicro.com/blog/?p=580
Senast redigerad av Krille Krokodil 23 augusti 2013, 19:06:08, redigerad totalt 1 gång.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Problem med arduino - begriper inte timingen....

Inlägg av sodjan »

> Tänkte att Arduino skulle underlätta...

Ja, men gjorde det inte det??
Men alla medaljer har så klart en baksida...
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Problem med arduino - begriper inte timingen....

Inlägg av Krille Krokodil »

Finns många anledningar till att välja Arduino men är man redan över ett par trösklar genom att ha programmerat assembler i AVR Studio så är det nog enklast att fortsätta med C i samma miljö.

Arduinos miljö må vara enkel att komma igång med men så fort du kör fast saknas det felsökningsverktyg och du måste köra över koden till AVR Studio el. motsv., allt sådant där är tid spenderad på att stampa på samma plats och då är det kanske varit bättre på att ha lagt den på att gå framåt i den ren GCC där mycket liknar assembler.
laban12
Inlägg: 1199
Blev medlem: 17 april 2008, 16:01:56
Ort: Stockholm

Re: Problem med arduino - begriper inte timingen....

Inlägg av laban12 »

Jag gillar ändå konceptet med färdiga "sköldar" och bibliotek - eftersom jag bara hackar på hobbynivå så är det värt att ta medaljens eventuella baksidor.

Bara man har koll på fallgroparna som finns så kan man undvika dem!
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Problem med arduino - begriper inte timingen....

Inlägg av Krille Krokodil »

Det går att koda Arduino i AVR Studio om man vill ha ett bättre IDE med debugger och simulering.

http://www.engblaze.com/tutorial-using- ... -projects/
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Re: Problem med arduino - begriper inte timingen....

Inlägg av Kaggen »

Om man bortser från fördelarna med debugging och simulering i AVR studio så är det väl inget som hindrar att man skippar problematiska bibliotek och hamrar direkt på järnet från arduinos IDE heller? Man kan väl accessa portar m.m. direkt där också?

Inline assembler funkar tydligen även det, om man nu har tidskritiska delar i sin kod. Ser lite jobbigt ut att skriva längre stycken dock...
http://playground.arduino.cc/Main/AVR
Skriv svar