Sida 1 av 3

lära sig programmera i avr-studio i C(nytt problem 20-01-08

Postat: 16 januari 2008, 17:07:39
av petterp
Hej

Jag undrar var man lättast kan få tag på information för att programmera atmels-kretsar i avr-studio. i program språket C.

Tänkte mest grunderna som trappar upp sig till lite mer avancerat.

jag har inga kunskaper i avr-studio enbart själva hur man skickar programmet till µp.


tack på förhand
//petter

(edit korrigerade texten lite ;) )

Postat: 16 januari 2008, 17:22:25
av sodjan
Du borde kanske kolla igenom själv vad du skriver, jag får inte
ihop vad du menar med den tredje meningen.

Och när du ändå rättar till det så kan du fixa stor bokstav där det ska
vara det, det blir lite trevligare/lättare att läsa när det är korrekt skrivet. :-)

Men generellt så verkar svaret vara att du ska läsa dokumentationen.

EDIT:
Nu såg jag "lyssna inte på vad jag säger, lyssna på vad jag menar."
Men det hjälpte inte... :-)

Postat: 16 januari 2008, 17:31:17
av oJsan
Programspråket C stödjs inte i, så vitt jag vet, i den "fria" versionen av avr studio. C-kompilatorerna brukar vara plugin (gäller i alla fall motsvarande program för PIC).
Beroende på tidigare erfarenhet så tycker jag att du har två alternativ:

1. Börja med assembler i AVR studio och lär dig grundligt hur en uC fungerar.

2. Skippa AVR studio och använd istället WinAVR, vilket är en fri (GNU) C-kompilator för AVR.

...AVR studio kan i båda fallen användas för att programmera själva kretsen, men det finns ju andra verktyg för det också.

Gällande dokumentation:
1. Manualer och exempel från Atmel.
2. Installationsanvisningarna och manualen för WinAVR.

Postat: 16 januari 2008, 17:59:20
av thepirateboy
Jag tycker nästan tvärtom. Installera AVR-studio samt servicepack. Installera sedan WinAVR. Skapa ett nytt C-projekt i AVR-studio och börja koda.

Det är det enklaste sättet jag känner till för att komma igång med AVR. AVR-studio är inge bra editor men duger till att börja med innan man har koll på makefiler.

Det är dock nyttigt som sagt. att börja med assembler.

Manual för AVR Libc och exempel hittar du tex här http://www.nongnu.org/avr-libc/user-man ... demos.html.

Postat: 16 januari 2008, 19:21:34
av petterp
Vad är det för fördelar med att kunna assembler?

Tänkte mest börja med C för att jag anser, att jag har mer nytta av det än att sitta i Bascom ;) känns onödigt att lära sig först det sedan inte har någon nytta av basic språket.

Så jag kan inte direkt skriva i C i avr-studio utan att installera massa andra saker med?

Postat: 16 januari 2008, 19:45:28
av thepirateboy
Du måste ibland ha full koll vad du gör, och då är det assembler som gäller. Det kan tex vara vissa instruktioner som måste utföras inom en viss tid, och då är det praktiskt att använda inline assembler i C. Det är också nyttigt och studera vad kompilatorn spottar ut sig, i LST-filen.

Nej, du måste installera WinAVRför att kunna kompilera C-kod i AVR-studio.

Postat: 16 januari 2008, 19:55:13
av Zyxel615
Som sagt: börja med assembler. Det ger så oerhört mycket att verkligen kunna se hur programmet arbetar, guld värt för att krama ut så mycket som möjligt ut en liten processor.

Postat: 16 januari 2008, 19:56:49
av petterp
Okej när jag väl har installerat WinAVR hur gör jag sedan, räcker det med att jag öppnar AVR-studio?

Hur stor skillnad är det mellan assembler och c rent kodmässigt?

Postat: 16 januari 2008, 20:00:26
av Zyxel615
Nej, du startar AVR Studio och väljer att skapa ett nytt C-projekt. Om allt funkar som det ska ska AVR Studio automatiskt hitta din WinAVR-installation. WinAVR är inget fristående program utan en samling av öppen-källkodverktyg för att kompilera program för AVR.

Postat: 16 januari 2008, 20:19:46
av petterp
Men åter till min fråga vart kan jag få tag på information över hur man programmerar i c miljön i avr-studio,

Är det ungerfär som vanligt C programmering eller?

Vad ska man skriva för att välja vilken processor, klock frekvens m.m i programmet?

Postat: 16 januari 2008, 20:56:18
av eqlazer
Är det inte lika bra att börja från grunden med digitalteknik och jobba sig uppåt? :)

Att skriva C för AVR är som att skriva normala C-program. http://www.avrfreaks.net/ kan ge dig mycket hjälp och tips.

Edit:
Vår kassör i ETA gjorde i höstas en enkel guide för att komma igång med AVR. Långt ifrån komplett men till lite hjälp kan den förhoppningsvis vara.
http://wiki.eta.chalmers.se/doku.php?id ... taavrguide

Postat: 16 januari 2008, 21:09:07
av petterp
vad menar du nu? att börja från grunden med digitalteknik?

Jag är i det stadiet jag är intresserat av att hålla på med µp :P

Jag har läser digitalteknik parallelt i skolan, men läraren sätter oss i att programmera i basic och jag har inte fulllt så stort intresse i att lära mig ett basic språk ( kanske är bra ifall man ska lära sig grunder och inte längre ),
anser att det är mer givaren att programmera lite mer "avancerat"

Postat: 16 januari 2008, 21:36:13
av eqlazer
Där bidde det rörigt, "basic" och "basic" som i språket eller grundläggande? Men iaf, det jag menade var att för att få bästa förståelsen för hur en processor fungerar är att börja med digitalteknik och jobba sig uppåt. Börja med grindar, gå uppåt för att bygga adderare, ALU, hel processor osv. Sedan gå in på assembler när man vet hur logiken i en processor fungerar. Slutligen ta steget upp till C.
Liknande detta är det som man gör på Chalmers i första årskursen på många program, säkerligen så på andra skolor också (vad nu du pluggar och kommer gå igenom vet ju inte jag).

Bra att du är sugen på att leka med uC! Då får vi väl försöka uppmuntra och hjälpa dig mer med den biten istället för att tjata om det andra :)
Om det nu var språket basic du menade så ja det är väl ganska onödigt och tråkigt. Kolla lite på wiki-länken jag skickade. Delen där man får en lysdiod att blinka ger dig lite försmak på hur C-kod för en uC ser ut, ganska begripligt om du nu kan C?

Första steget är att lära sig hantera miljön där man skriver sin kod och laddar ner på chippet.
Sedan få en lysdiod att blinka (klassiskt) för att se att allt fungerar. Sen är det bra att ha lite ideer och mål om vad man vill göra. Efter en liten stund lär du dig hitta i databladet för din krets, vilka register som ska manipuleras för att få det att fungera som du vill osv.
avrfreaks är ett bra ställe att söka information och kod-exempel på.

Postat: 17 januari 2008, 18:20:07
av petterp
ibland blir det rörigt när jag skriver :P börjar tänka på annat ;)

okej jag ska kolla närmare på den länken,
uppskattar all sådan information så att man lär sig programmera i C.

tillägg;
när jag ska "debugga" så säger den bara anslut "platform" Jag har en avrisp mk2 ikopllad,

men det finns inte som ett alternativ. hur ska jag göra?

Tillägg 2 ;

när jag väljer avr simulator som det står i guiden och väljer min krets atmega32 , så säger den vid det tillfället när jag väljer att den ska debugga:

""
Runtime Error!
program ......

This application has requested the Runtime to terminate it in an unusalual way.
Please contakt the applivcations suport team for more information.
""

Hjälp?? :(

Postat: 17 januari 2008, 20:40:21
av bos
Ger inte "Please contakt the applivcations suport team for more information." tillräckligt med tips?