Vad ska man lära sig: C eller C++ vid arduino

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Vad ska man lära sig: C eller C++ vid arduino

Inlägg av Al_Bundy »

Hejsan!

Vad är rekommenderat att lära sig, C eller C++ om man ska hålla på med arduino?
C++ är ett stort språk och det kanske inte nödvändigt att lära sig hela C++ om man ska styra arduino?
nifelheim
Den första
Inlägg: 2489
Blev medlem: 27 mars 2008, 22:31:16
Ort: stockholm

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av nifelheim »

Vad är ditt mål?

Räkna knapptyckningar och skriva på en display så enkelt som möjligt, gå på C spåret så kan du nog hitta det till 99 % färdigskrivet på nätet.

Lära dig programmera till en början Arduino för att sedan skriva stora, snygga, moderna, sexiga, program till allt möjligt, gå på C++
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av Al_Bundy »

Mitt mål är att programmera med arduinon.
Användarvisningsbild
calmar
Inlägg: 540
Blev medlem: 23 november 2005, 13:14:41
Ort: Göteborg
Kontakt:

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av calmar »

Arduino använder sig av nästan ren C med några få, enkla strukturer hämtade från C++.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av sodjan »

Om du ska programmera Ardunio så lär du dig det som Arduino använder,
vad det kallas ("C" eller "C++" eller något annat) är mindre intressant.
Deet viktiga är att du lär dig *programmera* och det har inte mycket
alls att göra med något speciellt programmeringsspråk.
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av Walle »

Jag kan inte annat än att instämma med Sodjan. Att lära sig programmera har egentligen inte mycket med syntaxen att göra, utan kan väl snarast beskrivas som ett sätt att tänka. Kan man programmera kan man utan några större bekymmer lära sig såväl C som C++ och PHP, samt typ alla andra språk. Att lära sig ett visst språk handlar just bara om att lära sig syntaxen, alltså t.ex hur man skriver för att deklarera en variabel.

C är ett bra "nybörjarspråk". För rena mikrokontrollers (tex PIC eller AVR) tycker jag att det är bra att börja med assembler, för att man får en förståelse för hur MCUn jobbar internt. Men arduino kan man väl inte programmera med assembler direkt, eller?
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av Al_Bundy »

Hej!

Kan man programmera i python i arduiono?

Så det spelar ingen roll vilket språk jag använder mig om jag sa programmera mikrokontroller? Då kör jag väll på C++ då det finns mer svenska youtubeklipp om hur man lär sig C++ än C :)
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av TomasL »

Du läser som en, tja jag vet inte vad.
Du måste naturligtvis använda dig av de verktygen som din utvecklingsplattform stöder.
Python, tror jag knappast någon uP-plattform stöder, då det är ett script-språk.

Om det finns en Python-tolk/kompilator som stöder Arduinon, så visst, men det är knappast troligt.

Programmering handlar inte om att kunna ett specifikt språk, utan ett sätt att tänka, dvs att kunna visualisera problemlösningarna, kunna bryta ned dem till minsta beståndsdel osv.

Vilket språk, må det vara C/C++ eller maskinkodsmneonics som assembler spelar egentligen ingen roll.
Dock är det nödvändigt att välja det eller de språk som plattformen stöder, samt de som på ett effektivt sätt löser uppgiften.
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av Al_Bundy »

Men då kör jag på C++ då :)

Eller ska jag köra på C med take på att alla mikrokontrollers kan använda C och inte C++ ?

Jag kan inte acceptera svaret "Det spelar ingen roll. Lär dig ett språk som löser uppgiften" av anledningen att jag kommer få ta skit sen av någon annan t.ex "Hur kunde du lära dig just detta språk....helt onödigt :doh: ".

Det måste finnas väll någon standardspråk om vad som passar bäst just för mikrokontroller?
Användarvisningsbild
AndLi
Inlägg: 18282
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av AndLi »

C
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av Al_Bundy »

En liten fråga:
Om jag kan göra EXAKT lika mycket som C++ som i C med arduinon så kör jag på C.
Jag har för mig att man kan göra mer saker med C++ än C i t.ex arduino. Kanske är fel?

Ganska många rekommenderar C före C++ när det just handlar om mikrokontroller.
Det kanske blir onödigt stort att lära sig C++ om man ska hålla på med mikrokontroller.

Vad är det som C++ har som inte C har? C++ har klasser vet jag iallafall, men betyder det att C är typ "handikappat" eller behövs verkligen klasser i mikrokontroller?
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av TomasL »

Men då kör jag på C++ då :)
Går säkert bra om det finns en C++ kompilator för Arduinon.
Eller ska jag köra på C med take på att alla mikrokontrollers kan använda C och inte C++ ?
Finns inga mikrokontroller som kan använda varken C eller C++
All mikrokontrollers använder sig av maskinkod.
Maskinkod är ett antal ettor och nollor i olika kompbinationer.
Vissa processorer använder 8 positioner för instruktionerna, vissa 14 andra 16, 32 64 osv, helt beroende på vilken mikrokontroller det är.
Samma kombination av ettor och nollor betyder helt olika saker på olika processorer
Kontentan är man använder det eller de språk som plattformen/utvecklingsverktygen stöder.
Jag kan inte acceptera svaret "Det spelar ingen roll. Lär dig ett språk som löser uppgiften" av anledningen att jag kommer få ta skit sen av någon annan t.ex "Hur kunde du lära dig just detta språk....helt onödigt :doh: ".
Se ovan
Det måste finnas väll någon standardspråk om vad som passar bäst just för mikrokontroller?
Nej det finns det inte, det beror helt på vad man vill uppnå, ibland är det effektivast att göra det i ren maskinkod, dvs assembler, ibland i C ibland i C++, ibland i andra språk som till exempel OCCAM.

Det där med klasser, det finns inga processorer som "behöver" klasser, de är bara till för att det skall bli enklare för programmeraren.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av sodjan »

Ja jösses vad du rör till det !? :-)
Varför inte tar du inte helt enkelt och "gör läxan" själv ?

http://arduino.cc/en/Guide/Introduction
http://arduino.cc/en/Reference/HomePage

> Om jag kan göra EXAKT lika mycket som C++ som i C med arduinon så kör jag på C.

Du kan göra exakt det som det språk som de har valt till Arduino medger!
Det är helt ointressant om det kallas "C", "C++" eller något annat.

Är det inte klart nu att hela frågeställningen är irrelevant eftersom
du i alla fall inte har något reelt val ?

> Det kanske blir onödigt stort att lära sig C++ om man ska hålla på med mikrokontroller.

Att lära sig saker är aldrig fel. Men bara för att man vet hur en skruvmejsel
fungerar så spikar man ju inte med den. Det viktiga är att veta vilket verktyg
man ska använda. Ibland så förser leverantören en med rätt verktyg, och
då kör man med dom helt enkelt, som t.ex i fallet med Arduino.

> ...men betyder det att C är typ "handikappat" eller behövs verkligen klasser i mikrokontroller?

Svaret på det är ju väldigt beroende på vad man lägger i bergreppet "behövs" och
även vad man menar med "mikrokontrollers". I fallet med 8-bitar plattformar så skulle
nog nästan alla svara "nej".
Användarvisningsbild
Al_Bundy
Inlägg: 2889
Blev medlem: 11 september 2012, 23:59:50
Ort: The U.S - Chicago
Kontakt:

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av Al_Bundy »

Okej.

Men då kör jag på C++ då det inte spelar någon roll och dessutom så hittar jag 85 stycken videoklipp om hur man programmerar i C++ :)



Det är inte jag som rör till det. Det är folk som har valt och kalla dem för C och C++ som rör till det.
Ungefär som att kalla det för "Språk" och "Extra språk". Man blir förvirrad då :)
Användarvisningsbild
Wedge
Inlägg: 1026
Blev medlem: 8 juli 2012, 17:33:33

Re: Vad ska man lära sig: C eller C++ vid arduino

Inlägg av Wedge »

Arduinomiljön använder en C++-kompilator, men de flesta skriver bara C-kod. Komponentbiblioteken är skrivna i C++, och tillhandahåller objekt (SD, LCD mm) så även C-programmeraren använder lite C++ när standardkomponenterna används i Arduino.
Med C kommer du att kunna göra det du vill, no problem. Med C++ kommer du även att kunna förstå och modifiera de medföljande kodbiblioteken, vilket kan vara bra men inte livsnödvändigt.
Skriv svar