Sida 1 av 2
Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Postat: 19 mars 2010, 12:35:46
av drschwarzenegger
Hejsan!
Tänkte börja med lite elektronikbygge och har läst på en del. Ett par frågetecken kvarstår dock.
Mina kunskaper än så länge är dom man har om man läser teknisk fysik på KTH, alltså mest teoretiska om halvledare men hyffsad grund i programmering.
Mina syften med att bygga elektronik är på sikt att kunna bygga saker som använder sig mycket av sensorer av olika slag, enkla saker eventuellt för medicinskt bruk.
Tre frågor:
Är det rimligt att satsa på att lära sig PIC istället för AVR? Verkar lite lättare och kanske mer ekonomiskt av vad jag kan läsa mig till.
Går det att använda sig av C++ för att programmera PIC eller är man tvungen att köra med C# ?
Är antingen PIC eller AVR betydligt energisnålare än den andra?
Tackar så länge. Nybörjartips i övrigt uppskattas också!
Re: Nybörjarfrågor typ
Postat: 19 mars 2010, 12:59:24
av eqlazer
PIC eller AVR kvittar. Är du ute efter att lära dig hantera microcontrollers eller har du nått speciellt mål?
Det är snarare C du behöver kunna, i vissa fall C++ om det är lite större och häftigare applikationer. Och ASM är aldrig dumt att ha ett hum om för att kunna göra djupdykningar och förstå sig på hårdvaran och dess arbetssätt.
Finns olika serier hos både Microchip och Atmel som är avsedda för låg egenförbrukning. Du får helt enkelt leta runt lite bland olika modeller.
Edit: Pluggar du på KTH nu? Inte funderat på att besöka ELAB?
Re: Nybörjarfrågor typ
Postat: 19 mars 2010, 13:03:43
av drschwarzenegger
Tack för svaret. Det går alltså att använda C++ för att programmera både PIC och AVR? Har haft svårt att hitta ett tydligt svar på det. Att jag föredrar C++ över C beror på att jag är mer van vid objektsorienterad programmering.
Behöver jag en speciell kompilator (eller vad själva "brännprogrammet" nu kallas) för att använda C++ för PIC-programmering tex?
edit: Har varit en del i ELAB och lött lite simpla prylar som bara behövt dioder och strömbrytare. Läser inte på KTH just nu, studieuppehåll för andra studier.
Re: Nybörjarfrågor typ
Postat: 19 mars 2010, 13:06:03
av sodjan
> Går det att använda sig av C++ för att programmera PIC
Nej.
> eller är man tvungen att köra med C# ?
Nej. C-sharp har inte ett smack med detta att göra.
Varför frågar du om C# ? Om du redan kan C# så borde du
veta att det är ett språk för i princip enbart Windows programmering.
> Det går alltså att använda C++ för att programmera både PIC och AVR?
Nej nej nej !!
Vad har du fått det ifrån ???
> Att jag föredrar C++ över C beror på att jag är mer van vid objektsorienterad programmering.
Lär om.
Re: Nybörjarfrågor typ
Postat: 19 mars 2010, 13:07:05
av sodjan
Du har betydligt viktigare saker att lära just nu än att bekymra dig
om språkval. Det kommer naturligt när du har läst på lite mer.
Re: Nybörjarfrågor typ
Postat: 19 mars 2010, 13:09:15
av sodjan
Se t.ex :
http://www.elektronikforumet.com/wiki/i ... ontrollers
Och ändra gärna rubriken på tråden till något vettigt som talar om vad det handlar om.
Re: Nybörjarfrågor typ
Postat: 19 mars 2010, 13:12:55
av prototypen
Nu är jag inte någe bra på att programmera men det kan bli så att energisnålt och C++ inte går ihop. Med högnivåspråk genereras mycket kod sas för säkerhets skull, alla register måste sparas undan vid en subrutin men man behöver egentligen bara ett register. Visst kan man skriva högnivå men man kanske måste in och städa i koden för att få den snabbare med en långsammare (strömsnål)processor.
Protte
Re: Nybörjarfrågor typ
Postat: 19 mars 2010, 13:30:06
av drschwarzenegger
Nu säger ju Sodjan att det inte går att använda C++ men i wikin finns ju länk till GCC compilern som tydligen kan använda sig av C++ kod.
Finns något motsvarande för PIC?
Re: Nybörjarfrågor typ
Postat: 19 mars 2010, 13:33:57
av sodjan
Alltså, även om det "går" (vad nu det betyder) så är det en jäkla dålig idé.
Det finns absolut ingen som helst fördel med att försöka med C++.
Glöm det bara. Varför är det då viktigt så att du lägger en massa
tid på det *nu* ?
Som sagt, du har betydligt viktigare saker att läsa in dig på än
att bekymra dig om språkval. Det är lite för tidigt...
Re: Nybörjarfrågor typ
Postat: 19 mars 2010, 13:53:21
av snigelen
Ett utmärkt sätt att komma igång är annars med en Arduino som är baserad på ATMega. Den har ett enkelt användargränssnitt och ett programmeringsspråk som direkt baserat på GCC C++ samt en bootloader som innebär att du bara behöver en usb-port + kabel för att programmera den. Man kommer enkelt igång med att prova saker i stället för att behöva börja plöja datablad, det kan man ta senare.
Arduinon kan även programmeras direkt (utan Arduinomiljön och "språket") med t.ex GCC's C, C++ eller tom Ada- kompilator

. Eller assembler för den delen.
Re: Nybörjarfrågor typ
Postat: 19 mars 2010, 14:18:24
av drschwarzenegger
Tackar, ska kolla Arduino.
@Sodjan, förstår inte vad som är fel med att kolla upp vilket språk man ska satsa på innan man börjar lära sig ett nytt. Tänkte börja programmera lite mer och vill då satsa på ett språk som lämpar sig både för elektronik och småprogram för lite allt möjligt(icke elektronikrelaterat). Hade hoppats på att C++ skulle funka bra till både och, har inte tidsutrymme att ägna tid åt mer än ett språk nu.
Tack för alla svar.
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Postat: 19 mars 2010, 14:28:59
av sodjan
Om du inte har jobbat med mikrokontrollers förr, så kommer du att
lägga mycker mer tid på att lära dig *det*, än vad det tar att lära
sig ett nytt språk (vilket ju igentligen inte är något problem i sig).
Att "programmera" en mikrokontroller inbegriper mycket mer än
att skriva själva koden. Välj verktyg efter uppgiften som ska
löses, inte efter vilka verktyg du råkar kunna innan, det kan
ju vara helt fel verktyg. T.ex så är det mycket viktigare att
använda ett språk som används i de flesta exempel som du
kan råkar trilla på eller som används i datablad och liknande, än
vad du råkar kunna innan.
> förstår inte vad som är fel med att kolla upp vilket språk man ska satsa på...
Det är inte alls fel, tvärtom är det helt rätt!
Det var din fixering vid C++ som var/är fel. Du hade
ju på sätt och vis redan valt i förväg...
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Postat: 19 mars 2010, 14:31:18
av drschwarzenegger
Inte riktigt valt men hoppats på att det skulle funka bra för uppgiften men tydligen inte. Bra poäng om all exempelkod man kommer stöta på, det skulle så klart blivit ett stort problem om jag använde ett annat språk än alla andra.
Får satsa på C helt enkelt.
Tackar.
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Postat: 19 mars 2010, 14:38:55
av sodjan
Och assembler.
Även om du inte kommer att skriva så mycket kod i assembler, så
är det en klar fördel att kunna *läsa* assembler, stora delar
av exemplen i databladen brukar vara i assembler. Du kan också
behöva läsa den assembler som C-kompilatorn genererar i de
fall när det inte fungerar som du vill...
Re: Nybörjarfrågor typ (om PIC, AVR och programmeringspråk)
Postat: 19 mars 2010, 16:21:27
av Swech
Om man vänder på frågan istället.
Drschwarzenegger - om jag kom till dig och frågade om det går att köra
assembler på en PC så skulle du säga nej nej nej, kör c++ istället.
Kontrar jag med "Men jag kan assembler", skulle du ändå säga nej nej, eftersom med c++ får man ditten och datten...
Det är möjligt att köra assembler på PC men man vinner ingenting.
Det går att köra någon form av c++ på microprocessor men man vinner ingenting därheller
Så det du vet om programmering inom c++ är inte direkt applicerbart då microprocessorerna inte är tänkta för detta.
Däremot hur man strukturerar och skriver program i allmänhet är kunskaper du har nytta av.
Swech