Arduino vs. andra utvecklingsmiljöer
Re: Arduino vs. andra utvecklingsmiljöer
OK då faller argumentet att det är långsammare. Däremot kan det ta mera resurser såsom den där timern och att det tar kanske mera plats i minnet. Jag ska testa Arduino vid något tillfälle. Lätt att man får förutfattade meningar om man inte testar det själv.
Re: Arduino vs. andra utvecklingsmiljöer
Sällan Universitet skriver exakt allt om kursen. Kollar man TFE's kurser så skriver dom knappt kurslitteratur eller schema.Glenn skrev:..Fast dom skriver inget om det på websidan och du vägrade tala om vilken kur s det var som använde arduino.. ?
Ang BASIC stamp så var ju största felet med den att den körde interpreterande BASIC, vilket var extremt långsamt och resurskrävande, om man tar ett BS-program och kompilerar det med PBP (det finns stöd för BS-syntaxen, men är inte rekommenderast att använda annat än för direkt migrering från BS) och häller ner det i en likadan PIC som finns på en BS så är det ofta en uppsnabbning med en faktor på typ 100 eller så.
Det går inte jämföa BASIC stamp med Arduino. Arduino är flera gånger billigare och snabbare.
Re: Arduino vs. andra utvecklingsmiljöer
Ni alla som säger att Arduino är segt.
Jag tänker dra upp en liten historia och sen jämföra den med ert klagomål med hastighet.
Vi tar en gammal Volvo som exempelvis. Dom anses dra ganska mycket bensin jämfört med dagens bilar. Enligt mig så drar dom väldigt lite. Det är bara att dom utvecklar få hästkrafter av sin konsumption. Men det var inte exakt det jag ville komma till. Vi säger att denna gamla volvo drar mycket bensin och då måste man köpa mer bensin. Det kostar pengar.
Bensinen är dyr är det många som klagar på. Javisst, det är det! Men gör så här. När du nästan har tom tank i bilen så ska du tanka in en liter bensin i bilen. Sen kör du så långt bort som du bara kommer. Du kanske kommer 8 km tills tanken är tom och bilen stannar. Då kliver du ut ur bilen och börjar putta på där back och sen ska du säga "Bensinen är för dyr".
Nä, Bensinen är ganska billigt i sånt där tillfälle!
Samma sak gäller arduinon. En arduino är snabb.
Man måste inte ha 100% lightspeed på sina processorer dag ut och dag in.
Därför duger Arduino hur bra som helst. Och att säga den är seg, så kan man själv trycka på knapparna och sköta det manuella
Jag tänker dra upp en liten historia och sen jämföra den med ert klagomål med hastighet.
Vi tar en gammal Volvo som exempelvis. Dom anses dra ganska mycket bensin jämfört med dagens bilar. Enligt mig så drar dom väldigt lite. Det är bara att dom utvecklar få hästkrafter av sin konsumption. Men det var inte exakt det jag ville komma till. Vi säger att denna gamla volvo drar mycket bensin och då måste man köpa mer bensin. Det kostar pengar.
Bensinen är dyr är det många som klagar på. Javisst, det är det! Men gör så här. När du nästan har tom tank i bilen så ska du tanka in en liter bensin i bilen. Sen kör du så långt bort som du bara kommer. Du kanske kommer 8 km tills tanken är tom och bilen stannar. Då kliver du ut ur bilen och börjar putta på där back och sen ska du säga "Bensinen är för dyr".
Nä, Bensinen är ganska billigt i sånt där tillfälle!
Samma sak gäller arduinon. En arduino är snabb.
Man måste inte ha 100% lightspeed på sina processorer dag ut och dag in.
Därför duger Arduino hur bra som helst. Och att säga den är seg, så kan man själv trycka på knapparna och sköta det manuella

Re: Arduino vs. andra utvecklingsmiljöer
Visst gör den det, på samma sätt som Basic Stamp etc gör det. Det är helt och hållet frågan om ambitionsnivå och användningsområde.Därför duger Arduino hur bra som helst.
Varför inte skippa PIC/AVR helt och köra med Raspberry Pi?
Re: Arduino vs. andra utvecklingsmiljöer
En fråga till Arduino-kunniga: har man tillgång till alla interrupt i den?
Re: Arduino vs. andra utvecklingsmiljöer
Eftersom jag inte använder Arduino själv borde jag kanske låta någon annan svara på frågan, men jag gör ett försök ändå
. Det Arduino IDE gör är att pre-processa koden/sketchen lite (lägga till en main() mm) innan den skickas till avr-gcc för kompilering/länkning. Eftersom det är avr-gcc som sköter kompilering fungerar det bra att lägga till egna ISR:er och annan kod på "vanligt AVR-sätt". Som jag har förstått det så behöver man inte använda av de Arduino-specifika delarna, IDE, funktionsbibliotek (Wiring) etc. om man inte vill. Det går till och med att kompilera/länka med extern makefil, men då kanske man tappat lite av grundidén om låg starttröskel.

Re: Arduino vs. andra utvecklingsmiljöer
Om jag min rätt kan man använda någon form av pin-interrupt för en eller eventuellt ett par pinnar. Jag vågar däremot inte lova att de motsvarar något hårdvaruinterrupt. De skulle lika gärna kunna hanteras i mjukvara.
Arduino är i grund och botten inte byggt för någon som helst realtidshantering, därav avsaknad av interrupt. Man skulle väl kunna säga att den uppfyller de tidsaspekter en människa klarar av att uppfatta, då räcker det gott med mjukvaruinterrupt.
Arduino är i grund och botten inte byggt för någon som helst realtidshantering, därav avsaknad av interrupt. Man skulle väl kunna säga att den uppfyller de tidsaspekter en människa klarar av att uppfatta, då räcker det gott med mjukvaruinterrupt.
Re: Arduino vs. andra utvecklingsmiljöer
Det finns några "Arduino-kommandon" för att hantera interrupt, men
dessa hanterar anbart "pin-interrupt", inte någon annan enhet. Sen
kan man lägga till vanlig register-konfigurering för övriga intgerrupt,
lite googling på "arduino interrupt" ger en del exempel. Men som sagt,
då har man ju frångått den raka Arduino-vägen, så att säga...
dessa hanterar anbart "pin-interrupt", inte någon annan enhet. Sen
kan man lägga till vanlig register-konfigurering för övriga intgerrupt,
lite googling på "arduino interrupt" ger en del exempel. Men som sagt,
då har man ju frångått den raka Arduino-vägen, så att säga...
- SeniorLemuren
- Inlägg: 8425
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Arduino vs. andra utvecklingsmiljöer
Mjukvaruavbrott (eller svengelskans mjukvaruinterrupt, som en del svänger sig med,) tycker jag låter lite tillspetsat. Vadå interrupt. Någon trycker på en knapp som sätter en port låg som måste kollas i en programslinga hela tiden.
När knappen trycks in så gör programmet någonting? Det är ju normal programmering och har väl egentligen ingenting alls med interrupt att göra. I så fall får man ju räkna in alla hopp till funktioner i programmet som mjukvaruavbrott.
Det var väl förresten en av de stora svagheterna i Basic Stamp att den saknade möjligheten till hårdvaruavbrott, som ju enligt min mening är en ganska väsentlig del i många processer.
Men visst hanterar väl Arduino hårdvaruavbrott som väl enligt vad jag förstår är det samma som pin-interrupt. Jag förstår inte LHelge riktigt här:
När knappen trycks in så gör programmet någonting? Det är ju normal programmering och har väl egentligen ingenting alls med interrupt att göra. I så fall får man ju räkna in alla hopp till funktioner i programmet som mjukvaruavbrott.
Det var väl förresten en av de stora svagheterna i Basic Stamp att den saknade möjligheten till hårdvaruavbrott, som ju enligt min mening är en ganska väsentlig del i många processer.
Men visst hanterar väl Arduino hårdvaruavbrott som väl enligt vad jag förstår är det samma som pin-interrupt. Jag förstår inte LHelge riktigt här:
Men som sagt. Jag håller mig till PIC som jag i och för sig inte är någon expert på heller.Om jag min rätt kan man använda någon form av pin-interrupt för en eller eventuellt ett par pinnar. Jag vågar däremot inte lova att de motsvarar något hårdvaruinterrupt.

Re: Arduino vs. andra utvecklingsmiljöer
Det jag tror LHelge menade, är att det inte är helt tydligt av Arduino dokumentationen
hur interrupt fungerar. Man kan få intryck av att det går genom ett extra lager där
styrningen sker. D.v.s att man gör en attachInterrupt() för att koppla en egen rutin
till valfri pinne. Men eftersom man kan ändra anropad funktion i runtime, så bör det
finnas något mer mellan hårdvaruavbrottet och den egna rutinen.
http://arduino.cc/en/Reference/attachInterrupt
http://arduino.cc/en/Reference/DetachInterrupt
Sen har jag sett andra exempel där man manipulerar AVR registren
direkt, men det är ju inte specifikt för Arduino på något sätt. Denna
sida beskriver båda metoderna:
http://www.engblaze.com/we-interrupt-th ... nterrupts/
> Men det måste väl finnas timer-interupt ? eller ?
Ja, *processorn* har det så klart, men Arduino "språket" har inget stöd för det.
Man får köra register hanteringen enligt avr-libc "som vanligt".
hur interrupt fungerar. Man kan få intryck av att det går genom ett extra lager där
styrningen sker. D.v.s att man gör en attachInterrupt() för att koppla en egen rutin
till valfri pinne. Men eftersom man kan ändra anropad funktion i runtime, så bör det
finnas något mer mellan hårdvaruavbrottet och den egna rutinen.
http://arduino.cc/en/Reference/attachInterrupt
http://arduino.cc/en/Reference/DetachInterrupt
Sen har jag sett andra exempel där man manipulerar AVR registren
direkt, men det är ju inte specifikt för Arduino på något sätt. Denna
sida beskriver båda metoderna:
http://www.engblaze.com/we-interrupt-th ... nterrupts/
> Men det måste väl finnas timer-interupt ? eller ?
Ja, *processorn* har det så klart, men Arduino "språket" har inget stöd för det.
Man får köra register hanteringen enligt avr-libc "som vanligt".
- SeniorLemuren
- Inlägg: 8425
- Blev medlem: 26 maj 2009, 12:20:37
- Ort: Kristinehamn
Re: Arduino vs. andra utvecklingsmiljöer
Det tror jag, men det är väl egentligen att anse som en form av hårdvaruavbrott eftersom det hanteras av inbyggda "hårdvaru"-funktioner i µC:n?
Re: Arduino vs. andra utvecklingsmiljöer
Jag var kanske lite otydlig, men jag menade att arduinospråket måste väl kunna hantera timer-interupt ? ..det är ju en ganska stor nackdel annars.
Det är ju en hårdvaruinterupt, men inte den formen som beskrevs innan.
Det är ju en hårdvaruinterupt, men inte den formen som beskrevs innan.
Re: Arduino vs. andra utvecklingsmiljöer
> Det tror jag, men det är väl egentligen att anse som en form av hårdvaruavbrott...
Ja absolut, det var inte menat så!
Programvaruavbrott är mer av typen "devide by zero" och liknande.
Eller "system traps" som det också kallas i en del arkitekturer.
Sen så kan man ju ofta pilla med interruptflaggorna direkt från
koden och på så sätt trigga ett interrupt...
> Jag var kanske lite otydlig, men jag menade att arduinospråket måste väl kunna hantera timer-interupt ?
Nej, det gör det inte. Enbart "pin-interrupt". Sedan får man gå över till det vanliga register-pillandet.
Skrev jag inte det nyss? Länken som även du fick nyss beskriver detta.
Ja absolut, det var inte menat så!

Programvaruavbrott är mer av typen "devide by zero" och liknande.
Eller "system traps" som det också kallas i en del arkitekturer.
Sen så kan man ju ofta pilla med interruptflaggorna direkt från
koden och på så sätt trigga ett interrupt...
> Jag var kanske lite otydlig, men jag menade att arduinospråket måste väl kunna hantera timer-interupt ?
Nej, det gör det inte. Enbart "pin-interrupt". Sedan får man gå över till det vanliga register-pillandet.
Skrev jag inte det nyss? Länken som även du fick nyss beskriver detta.
Re: Arduino vs. andra utvecklingsmiljöer
Raspberry Pi är väll bara en liten dator som har ARM processor?AndersG skrev:Visst gör den det, på samma sätt som Basic Stamp etc gör det. Det är helt och hållet frågan om ambitionsnivå och användningsområde.Därför duger Arduino hur bra som helst.
Varför inte skippa PIC/AVR helt och köra med Raspberry Pi?
Raspberry Pi är väll inte heller helt opensource som Arduino är?