Nybörjare på microprocessorer

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Sionic
Inlägg: 10
Blev medlem: 12 november 2006, 19:21:53
Ort: Luleå

Nybörjare på microprocessorer

Inlägg av Sionic »

Hej!

Jag är en glad amatör som precis börjat leta mig in i microprocessorvärden. Dock så har jag några små funderingar.

Hur är det med jobb för folk som jobbar med inbyggda system? Är det många på detta forum som jobbar med just det eller är det mest hobbyverksamhet?
Vilken nybörjarbok skulle ni rekomendera? (Helst inom AVR då jag har programmerat C i väldigt många år).
Är STK500 fortfarande aktuell eller finns det något "modernare" utvecklingspaket som är bättre?

Tacksam för svar/Erik
Användarvisningsbild
lgrfbs
Inlägg: 7325
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg av lgrfbs »

Börja här:
http://www.elektronikforumet.com/wiki/i ... ontrollers

Kolla sedan:
http://www.mikroe.com/en/compilers/

vika enligt mig gör mycket bra program.
Edit: rättade ett stavfel
Senast redigerad av lgrfbs 12 november 2006, 23:36:02, redigerad totalt 1 gång.
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg av thepirateboy »

Denna bok kan kanske vara nåt http://www.smileymicros.com/

STK500 funkar bra om man vill ha färdig hårdvara, annars är AVRISP MKII en billig programmerare som tar de flesta AVR-kretsar. AVR Dragon är en mycket billig emulator, som dock är något begränsad.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> (Helst inom AVR då jag har programmerat C i väldigt många år)

Hur tänker du här ?
Vad är det för *speciell* koppling mellan AVR och C ?

Om om du har programmerat i C på något *annat* än mikrokontrolles, så
har du inte alls så mycket nytta av det som du (verkar) tro...
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

sodjan: AVR är optimerat för C om jag minns rätt... kan man syntaxen i C så är det en bra början skulle jag villja säga.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Fri C-kompilator (GCC) som går att köra på alla möjliga plattformar (Linux, Windows, Mac, osv). Dessutom är AVR-arkitekturen speciellt konstruerad för att programmeras i C.

> Om om du har programmerat i C på något *annat* än mikrokontrolles, så
har du inte alls så mycket nytta av det som du (verkar) tro...


Jag håller inte alls med. När jag började med mikrokontrollers (AVR) så kunde jag redan C, och det hade jag otrolig nytta av. Jag letade upp något kodexempel och kollade vad som skiljde jämfört med vanlig C på PC. Sen var det bara att läsa databladet och börja leka. :)

Sionic: Jag tror inte du behöver någon bok. Allt förutom hur interrupt-rutiner konstrueras står i databladet för den AVR du vill använda.

Det finns en bok som heter "Embedded C Programming and the Atmel AVR" som kan vara hyfsat bra om man är nybörjare. Den använder dock en kommersiell C-kompilator, som skiljer sig något från den fria varianten (GCC). Låna den på bibblan om du inte vill köpa. Men jag tror som sagt att du klarar dig bra utan bok om du lär dig direkt från databladet istället. Databladet kommer du ändå inte ifrån. ;)

Vilket OS kör du förresten?
Senast redigerad av cykze 12 november 2006, 23:54:40, redigerad totalt 2 gånger.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> AVR är optimerat för C om jag minns rätt...

Jo, precis som PIC18 serien.
Min poäng var att det inte är något unikt för AVR.

> Sen var det bara att läsa databladet...

Exakt. :-) :-)
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg av Seven11 »

> Sen var det bara att läsa databladet...

Exakt. Smile Smile
Ja men det är ju helt klart bättre att börja med C kunskaper än utan dom, sen är det ju rätt sjävlklart att han får kolla andra dokument när han ska använda något maskinberoende.
Om om du har programmerat i C på något *annat* än mikrokontrolles, så
har du inte alls så mycket nytta av det som du (verkar) tro...
detta är självklart fel
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Alltså, det finns massor av exempel där man har programmerat i C/Basic/Pascal/whatever
på *andra* plattformat/miljöer och plockar med sig samma kodningsprinciper
när man börjar med AVR/PIC, med mycket varierande resultat.

Jag hävdar fortfarande att man ofta överskattar nyttan man har av
tidigare erfarenhet av (vanligtsvis) Windows-programmering. Det är klart
att man sannolikt vet hur man skriver ett *syntaktiskt* korrekt (t.ex) C
program, men det är inte detsamma som "programmering"...

Det är narturligtsivs inget svart och vitt eller rätt och fel, jag säger bara
att många *nybörjare* på mikrokontrollers överskattar nyttan av
programmering på andra plattformar. "Bara jag kör samma språk
(oavsett om det är C, Basic eller något annat) så går det säkert bra."
Så enkelt är det inte riktigt...
Användarvisningsbild
Icecap
Inlägg: 26662
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Att "kunna" ett programmeringsspråk är nog bra men kommer man från Windowsvärlden är det inte bara att köra på, man måste liksom göra ett OS från grunden, alltså initiera registre, reservera minne och faktisk inse att man inte har samma resurser i minne, kraft osv. Typisk är exemplet med dom som väljer 'float' variabler "för att de brukar göra det" och sedan undrar över att det går trögt och att programmet blir så stort.

Egentligen kvittar det vilket språk man kör, det svåra är att lära sig µC'ns begränsningar och hur man använder den effektivast.

Man kan bli mycket effektiv i C (/Pascal/Whatever) om man har förstådd till fullo hur man "betjänar" en µC, har man inte fatta det kommer programmen man gör sannolikt att suga.

Det finns exempel här på forumet där programmet fungerade men istället för att använde den inbyggda UART blev det använd en soft-UART, helt enkelt av okunnighet. I såna fall är ett högnivåspråk med dessa funktioner ett problem i mjukvaruutvecklingen i mitt tycke.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Ett bra sätt är att kolla på Asm-koden som genereras från C-koden. Då ser man vad som tar plats. Lägger du t ex in en division någonstans märker du att det tillkommer en hel del extra kod.
Sionic
Inlägg: 10
Blev medlem: 12 november 2006, 19:21:53
Ort: Luleå

Inlägg av Sionic »

Tack för de snabba svaren! C programmering (OS beroende) kan jag skriva i sömnen, är dock införstådd i att C för microprocessorer skiljer sig. Grunderna måste dock vara desamma om det ska kallas C :). Det som känns lite jobbigt med PIC är att de verkar i huvudsak endast kunna programmeras i ASM (finns säkert undantag). Jag kommer oundvikligen bli tvungen att återlära mig ASM förr eller senare. Men som ett första steg känns det nog lättast att börja med C.

>Vilket OS kör du förresten?
Har 3 aktuella datorer. Två mini-itx med Linux samt en vanlig P4:a med XP.

Hur var det med jobb. Vilka av er jobbar med inbyggda system/elektronikkonstruktion?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Det som känns lite jobbigt med PIC är att de verkar i huvudsak endast kunna programmeras i ASM

Jag vet inte varför du tror det, men det stämmer naturligtsvis inte.
Det finns både C, Basic och Pascal kompilatorer.

> Men som ett första steg känns det nog lättast att börja med C.

"Lättast" är inte alltid lika med "rätt". :-) :-)
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

Men vem *VET* igentligen vad som är "rätt"? Det enda jag kan säga om rätt/fel för uc's är att Basic ÄR fel :)
henkebenke
Inlägg: 521
Blev medlem: 31 maj 2003, 10:42:37
Ort: Helsingborg

Inlägg av henkebenke »

Det är ganska roligt att det alltid blir samma diskussion i varenda nybörjartråd i den här forumdelen.
Skriv svar