Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
> Så det du vet om programmering inom c++ är inte direkt applicerbart då microprocessorerna inte är tänkta för detta.
Man skulle lika gärna kunna skriva :
"Så det du vet om programmering är inte direkt applicerbart på microprocessorerna..."
Att byta från att programmera PC (eller störe system) till mikrokontrollers är ett
större steg än att byta språk. För den som förstår "programmering" så ska inte
ett byte av språk vara någon större fråga generellt sett.
Att ta med sig ett språk bara för att man kan det inbjuder också gärna till att
man även tar med sig programmerings *vanor* som inte är aktuella (eller
kanske direkt felaktiga) på mikroprocessorer.
Man skulle lika gärna kunna skriva :
"Så det du vet om programmering är inte direkt applicerbart på microprocessorerna..."
Att byta från att programmera PC (eller störe system) till mikrokontrollers är ett
större steg än att byta språk. För den som förstår "programmering" så ska inte
ett byte av språk vara någon större fråga generellt sett.
Att ta med sig ett språk bara för att man kan det inbjuder också gärna till att
man även tar med sig programmerings *vanor* som inte är aktuella (eller
kanske direkt felaktiga) på mikroprocessorer.
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Ja grejen är ju att skriver man för en mikrocontroller så finns det i princip inga befintliga funktioner. När du programmerar i C på en PC så använder du antagligen en handfull olika libbar (stdc åtminstone). Men med en mikrocontroller måste du ju skriva alla "drivrutiner" själv, du kommunicerar direkt med hårdvaran.
Dessutom är minnet begränsat, man måste skriva kompakta program. Och objektorienterad programmering kräver rätt mycket minne. På en mikrocontroller måste man ofta t.o.m. vara snål med antalet variabler, att då slösa en massa overhead för att få objektorientering är inte så bra.
Dessutom är minnet begränsat, man måste skriva kompakta program. Och objektorienterad programmering kräver rätt mycket minne. På en mikrocontroller måste man ofta t.o.m. vara snål med antalet variabler, att då slösa en massa overhead för att få objektorientering är inte så bra.
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
jag kunde bara BASIC och Z80 assembler från gymnasiet, när jag för drygt ett år sedan valde att satsa på att lära mig ett mer gångbart språk. Efter lite funderande valde jag Java!
Efter att ha insett att jag gått in i en återvändsgränd där, så var jag tvungen att börja med C eller C++. Eftersom jag ville programmera både microprocessorer och PC med högnivåspråk så lärde jag mig i princip båda språken parallellt - och jag får säga att de skiljer sig inte mycket åt. Det är få detaljer som skiljer, dessutom har de båda språken blivit mer lika varandra med tiden, då C har utvecklats.
Den stora skillnaden är just objektorienteringen, som får göras med andra metoder, som blir lite rörigare i C. Du kan t.ex. glömma klasser och därmed allting kring detta så som klassmetoder och subklasser osv... Det är annars ett litet steg att byta till C.
Det stora steget för dig är att lära dig processorns arkitektur och funktion, samt gärna också assemblerprogrammering, vilket är grunden för att kunna förstå sig på program för µC, En bok på mycket grundläggande nivå, men en extremt bra start är (hur många gånger har jag skrivit det förut, jag tror jag börjar bli tjatig ??? ) Per Foyer: Mikroprocessorteknik. Inledningsvis beskrivs den moderna mikroprocessorn (egentligen mikrokontrollern) allmänt, sedan ägnas resten av boken specifikt åt AVR och enbart assembler. Han går igenom de flesta funktioner i processorn som är nödvändiga att känna till.
Att PIC skulle vara enklare att lära sig än AVR tror jag inte på. Det är nog likvärdigt. Den fullständiga programmeringsmiljön för AVR (med tillhörande AVR-specifika bibliotek i C) får du gratis i ett enda paket (eller två kanske det är) via Atmels hemsida i form av WinAVR och AVRStudio 4. Med dessa, och en programmerare (eller utvecklingskort av något slag) och du är igång. För mig som total nybörjare var det busenkelt att komma igång med det och Per Foyers bok.
Efter att ha insett att jag gått in i en återvändsgränd där, så var jag tvungen att börja med C eller C++. Eftersom jag ville programmera både microprocessorer och PC med högnivåspråk så lärde jag mig i princip båda språken parallellt - och jag får säga att de skiljer sig inte mycket åt. Det är få detaljer som skiljer, dessutom har de båda språken blivit mer lika varandra med tiden, då C har utvecklats.
Den stora skillnaden är just objektorienteringen, som får göras med andra metoder, som blir lite rörigare i C. Du kan t.ex. glömma klasser och därmed allting kring detta så som klassmetoder och subklasser osv... Det är annars ett litet steg att byta till C.
Det stora steget för dig är att lära dig processorns arkitektur och funktion, samt gärna också assemblerprogrammering, vilket är grunden för att kunna förstå sig på program för µC, En bok på mycket grundläggande nivå, men en extremt bra start är (hur många gånger har jag skrivit det förut, jag tror jag börjar bli tjatig ??? ) Per Foyer: Mikroprocessorteknik. Inledningsvis beskrivs den moderna mikroprocessorn (egentligen mikrokontrollern) allmänt, sedan ägnas resten av boken specifikt åt AVR och enbart assembler. Han går igenom de flesta funktioner i processorn som är nödvändiga att känna till.
Att PIC skulle vara enklare att lära sig än AVR tror jag inte på. Det är nog likvärdigt. Den fullständiga programmeringsmiljön för AVR (med tillhörande AVR-specifika bibliotek i C) får du gratis i ett enda paket (eller två kanske det är) via Atmels hemsida i form av WinAVR och AVRStudio 4. Med dessa, och en programmerare (eller utvecklingskort av något slag) och du är igång. För mig som total nybörjare var det busenkelt att komma igång med det och Per Foyers bok.
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Ni har fel allihopa.
C# finns porterat till ett antal microkontrollers, bl.a. ARM7, Cortex M3, ARM9 och ADI BlackFin.
Finns att hämta hem kostnadsfritt fån Microsoft (SDK och Porting-kit).
http://www.microsoft.com/netmf/default.mspx
Det går att skriva lika kompakta program med C++ som med C, om man vill (och kan).
Idealet vore naturligtvis en C+ Kompilator, med fördelarna från C++ infogat i C.
Men oavsett vilken väg man tar, så är mikrokontrollers en mycket hårdvarunära programmering, och man måste kunna hårdvaran utantill, både framlänges och baklänges, samt även Assemblern för hårdvaran (man kommer alltid till det faktum att man måste skriva vissa rutiner i Assembler).
Personligen föredrar jag PICar, då supporten, alla appnotes, datablad samt utvecklingsmiljön är mycket bra.
Dessutom är PIC32 en riktigt rolig leksak.
C# finns porterat till ett antal microkontrollers, bl.a. ARM7, Cortex M3, ARM9 och ADI BlackFin.
Finns att hämta hem kostnadsfritt fån Microsoft (SDK och Porting-kit).
http://www.microsoft.com/netmf/default.mspx
Det går att skriva lika kompakta program med C++ som med C, om man vill (och kan).
Idealet vore naturligtvis en C+ Kompilator, med fördelarna från C++ infogat i C.
Men oavsett vilken väg man tar, så är mikrokontrollers en mycket hårdvarunära programmering, och man måste kunna hårdvaran utantill, både framlänges och baklänges, samt även Assemblern för hårdvaran (man kommer alltid till det faktum att man måste skriva vissa rutiner i Assembler).
Personligen föredrar jag PICar, då supporten, alla appnotes, datablad samt utvecklingsmiljön är mycket bra.
Dessutom är PIC32 en riktigt rolig leksak.
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
jesse
>tvungen att börja med C eller C++.
>jag får säga att de skiljer sig inte mycket åt.
Enligt standar ÄR C en del av C++.
Ett korrekt bra skrivet C program skall var ett korrekt C++ program också.
http://www2.research.att.com/~bs/bs_faq ... -is-subset
>tvungen att börja med C eller C++.
>jag får säga att de skiljer sig inte mycket åt.
Enligt standar ÄR C en del av C++.
Ett korrekt bra skrivet C program skall var ett korrekt C++ program också.
http://www2.research.att.com/~bs/bs_faq ... -is-subset
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
> C# finns porterat till ett antal microkontrollers, bl.a. ARM7, Cortex M3, ARM9 och ADI BlackFin.
OK, right, det kanske handlar lite om definitionen på "mikrokontrollers" också.
Jag tror att det som avses och menades i *den här* tråden (och det är naturligstvis
det som de svar avser som du anser är "fel") är "vanliga" 8-bitars AVR och/eller PIC.
> Ni har fel allihopa.
Nej, det tror jag inte. Det är du som talar om något annat än det tråden handlar om.
OK, right, det kanske handlar lite om definitionen på "mikrokontrollers" också.
Jag tror att det som avses och menades i *den här* tråden (och det är naturligstvis
det som de svar avser som du anser är "fel") är "vanliga" 8-bitars AVR och/eller PIC.
> Ni har fel allihopa.
Nej, det tror jag inte. Det är du som talar om något annat än det tråden handlar om.
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Sodjan, gör jag?
Dessutom är det väl inget som hindrar att man porterar .net till en 8-bitars processor i princip.
AVR finns väl med ARM-kärna, på samma sätt som PIC med MIPS-kärna, vad jag vet så är väl en MIPS-PIC dvs PIC32 en mikrokontroller, på samma sätt som AVR-Cortex (eller vad de heter) är en också är en microkontroller.Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Dessutom är det väl inget som hindrar att man porterar .net till en 8-bitars processor i princip.
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Jo, ja. Men man måste ju sätta det hela i sitt rätta kontext.
Det finns inget som tyder på att det var 16 eller 32 bitars processorer det hela handlade om.
De tidigare avgivna svaren i tråden är med största sannolikhet helt i linje med vad "nybörjaren"
avsåg från början. I annat fall så får väl drschwarzenegger återkomma och förtydliga lite. Men
innan dess så kan vi nog vara ganska säkra på att det är de vanliga 8-bitars AVR och PIC som gäller.
> Dessutom är det väl inget som hindrar att man porterar .net till en 8-bitars processor i princip.
Knappast en "nybörjarfråga". Och vem är "man" ?
Och att ta upp hypotetiska frågor kring vad "man" eventuellt skulle kunna
göra "i princip" hjälper knappast en nybörjare i det här läget. Rör inte till det...
Det finns inget som tyder på att det var 16 eller 32 bitars processorer det hela handlade om.
De tidigare avgivna svaren i tråden är med största sannolikhet helt i linje med vad "nybörjaren"
avsåg från början. I annat fall så får väl drschwarzenegger återkomma och förtydliga lite. Men
innan dess så kan vi nog vara ganska säkra på att det är de vanliga 8-bitars AVR och PIC som gäller.
> Dessutom är det väl inget som hindrar att man porterar .net till en 8-bitars processor i princip.
Knappast en "nybörjarfråga". Och vem är "man" ?
Och att ta upp hypotetiska frågor kring vad "man" eventuellt skulle kunna
göra "i princip" hjälper knappast en nybörjare i det här läget. Rör inte till det...
Senast redigerad av sodjan 20 mars 2010, 20:58:27, redigerad totalt 1 gång.
- jadler
- EF Sponsor
- Inlägg: 407
- Blev medlem: 28 maj 2009, 12:03:43
- Ort: Vidja, Huddinge, Stockholm
- Kontakt:
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Jag har nära nog ingen erfarenhet av PIC, så jag kan bara uttala mig om Atmels AVR. Jag har använt Arduino-plattformen sedan ett år ungefär, och även "ren" AVR både på Arduino-hårdvara och på egna byggen.
Vad gäller C++ på AVR tror jag att det beskrivs ganska väl på libc-avr-sidorna -- i princip skall det väl gå, men det finns inget stöd för libstdc++ så man får klara sig utan dessa funktioner. Om du väljer att programmera AVR rekommenderar jag absolut att du läser mer på libc-avr-sidorna, deras FAQ är i princip obligatorisk läsning men det finns mycket annat matnyttigt också.
Arduino-paketet bygger på C++, jag är inte van vid C++ så jag vet inte hur mycket av den funktionaliteten som finns med där.
Som GFEF skrev är ju C++ ett "superset" av C, så så länge du skippar de C++-specifika delarna lär dina kunskaper fungera bra även för C-programmering.
Jag nämner avr-libc ovan, den fria kompilatorn gcc som har stöd för bl.a. AVR använder avr-libc och de AVR-specifika delarna står bäst beskrivna just under libc-avr. Andra har nämnt Win-gcc (eller vad den heter) som helt enkelt är gcc för AVR portad till Windows. Är du en av de stackare som inte har övergivit M$ Windoze än så är det ändå gcc som gäller, och informationen om libc-avr är lika relevant.
Väljer du AVR finns massor av exempel i form av Application Notes på Atmels hemsida. Väljer du Arduino finns hur mycket hjälp som helst att få på deras hemsida och på många andra platser på nätet. (Använd Google...)
Vad gäller C++ på AVR tror jag att det beskrivs ganska väl på libc-avr-sidorna -- i princip skall det väl gå, men det finns inget stöd för libstdc++ så man får klara sig utan dessa funktioner. Om du väljer att programmera AVR rekommenderar jag absolut att du läser mer på libc-avr-sidorna, deras FAQ är i princip obligatorisk läsning men det finns mycket annat matnyttigt också.
Arduino-paketet bygger på C++, jag är inte van vid C++ så jag vet inte hur mycket av den funktionaliteten som finns med där.
Som GFEF skrev är ju C++ ett "superset" av C, så så länge du skippar de C++-specifika delarna lär dina kunskaper fungera bra även för C-programmering.
Jag nämner avr-libc ovan, den fria kompilatorn gcc som har stöd för bl.a. AVR använder avr-libc och de AVR-specifika delarna står bäst beskrivna just under libc-avr. Andra har nämnt Win-gcc (eller vad den heter) som helt enkelt är gcc för AVR portad till Windows. Är du en av de stackare som inte har övergivit M$ Windoze än så är det ändå gcc som gäller, och informationen om libc-avr är lika relevant.
Väljer du AVR finns massor av exempel i form av Application Notes på Atmels hemsida. Väljer du Arduino finns hur mycket hjälp som helst att få på deras hemsida och på många andra platser på nätet. (Använd Google...)
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
> Som GFEF skrev är ju C++ ett "superset" av C, så så länge du skippar de C++-specifika delarna...
Men, vad är då poängen med att fråga "kan man programmera <whatever> i C++ ?" ?
Programmerar man ens i C++ om man bara skriver "vanlig" C-kod ? Som i och för sig
körs genom en C++ kompilator, men i alla fall ?
Men, vad är då poängen med att fråga "kan man programmera <whatever> i C++ ?" ?
Programmerar man ens i C++ om man bara skriver "vanlig" C-kod ? Som i och för sig
körs genom en C++ kompilator, men i alla fall ?
