Vilken är lättast/smartast att börja med?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
peter555
Inlägg: 6047
Blev medlem: 12 februari 2006, 10:02:22

Inlägg av peter555 »

Eftersom jag är lat så tycker jag STK500 är bra då det är enkelt att ansluta signaler och slippa glapp etc som det är lätt att få på en labplatta. Men i övrigt har man inte så mycket nytta av den.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1355
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Inlägg av baron3d »

När det gäller ICSP debugger till PIC finns det ett par man kan bygga själv se http://www.edaboard.com/ftopic161641.html
C-utvecklingsmiljön till PIC18, MCC18+MPLAB, tycker jag är helt OK.

PS. Du kan ju kolla på:http://biphome.spray.se/frl_linder/PIC1 ... start.html
Användarvisningsbild
Ulf
Inlägg: 399
Blev medlem: 15 februari 2006, 14:04:03

Inlägg av Ulf »

Jag har inte själv pysslat med pic i någon större utsträckning, men det jag har förstått av inläggen här på forumet så är det en del bök med att flytta koden mellan olika modeller. AVR:erna är mer enhetliga i sin uppbyggnad mellan olika modeller, Rätta mig om jag är ute och cyklar eller knör på mopeden som inte vill starta!
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Jag kör både PIC och AVR,
programmerare för dessa så kör jag ICD2, AVRDRAGON och USBASP.

Jag skriver all kod i c och ser igentligen ingen större skillnad mellan AVR och PIC, båda har sina fördelar och nackdelar.

PIC har bättre skrivna manualer, fast atmega manualerna är inte dåliga.
Sedan att chip försvinner utan ersättare hos atmel har jag inte varit med om, visst koden kanske måsta ändras lite för det ska fungera.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> så är det en del bök med att flytta koden mellan olika modeller.

Vad menar du med "olika modeller" ?
Inom t.ex PIC16 är det inte några speciellt stora skillnader.
Om man "uppgraderar" från PIC16 till PIC18, så blir det en del justeringar.
Användarvisningsbild
Rohan
Inlägg: 1065
Blev medlem: 7 april 2004, 08:24:39
Ort: Eksjö, Småland
Kontakt:

Inlägg av Rohan »

Jag fyndade på eBay och köpte en JTAG-låda med DebugWIRE till mina AVR-projekt. Kostade 450 SEK med frakt. Prova att söka på debugwire på ebay.
Användarvisningsbild
Ulf
Inlägg: 399
Blev medlem: 15 februari 2006, 14:04:03

Inlägg av Ulf »

Sodjan, det var väl uppgraderingar som jag har sett. Det kallas väl familj istf modell.

Det är grabben som kör med PIC. det svär lite ibland. Han funderar på avr.

Men pic som har funnits så länge, det borde ju egentligen finnas pic-gcc, eller? Som hanterar processor byte på samma sätt som avr-gcc, då borde skillnaderna för oss som kör C bli ännu mindre... .

Vilken som är lämpligast beror i huvudsak på vad som ska göras, om det krävs en speciell processor. Sedan på vad man har för erfarenheter sedan tidigare, tex språk osv.

För mig spelade det ingen roll om jag använde pic eller avr, det var miljön. Då make, gcc och C är mycket kanda sedan tidigare och jag fick nys om winavr så blev det avr.

Nu har det mödosamma arbetet börjat (så smått) med att bygga upp ett skal runt avr som jag kan stubba bort och bara testa applikationerna i Linux, vi får se om det någonsin blir färdigt!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> och bara testa applikationerna i Linux

Hur då *bara* ? Vart tar processorn vägen ? Simuleras den ?
Användarvisningsbild
Ulf
Inlägg: 399
Blev medlem: 15 februari 2006, 14:04:03

Inlägg av Ulf »

Nä, så långt ska jag inte dra det hela. Tanken är att göra själva applikationens kod utan en gnutta avr-specifik kod. Själva implementationen mot hårdvara görs i ett eller flera lib som sedan byts ut för att simulera i linux. vill man sedan köra applikationen i på en pic så skapar man lib för denna. Det brukar vara på det sättet när man gör en applikation mot flera plattformar.

Det som kan spela in är hur overhead, onödiga funktions anrop etc. .
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Vad menar du med "andra plattformar" ? Andra mikrokontrollers ?
Eller andra miljöer typ Win/Linux/whatever ? I så fall tror jag inte alls på det.
Har du skrivit någonting alls till mikrokontrollers tidigare ?

Det går knappt att skriva en applikation som man kan köra på
PIC och AVR bara genom att byta ut någon "hårdvaru-lib". Redan där
är skillnadera så pass stora så att stora delar av applikationen sannolikt
kommer att skrivas på olika sätt beroende på vilken processor man använder.

OK, om man vill köra sub-optimalt kanske, men inte om man vill
få ut allt av de olika processorerna.
Användarvisningsbild
ucadv
Inlägg: 203
Blev medlem: 29 januari 2007, 23:13:49

Inlägg av ucadv »

sodjan, vad Ulf beskriver är mer regel än undantag i större projekt. sparar utvecklingskostand och utvecklare kan komma igång långt innan hårdvaran finns tillgänglig.


Byta mellan PIC och AVR? enkelt! Vi modellerar ASIC i C och testkör prototypen i ARM och/eller FPGA mot riktig hårdvara (med långsammare klocka förstås)....
Användarvisningsbild
Ulf
Inlägg: 399
Blev medlem: 15 februari 2006, 14:04:03

Inlägg av Ulf »

Plattformar, det kan vara processor, OS, simulatormiljö eller emulatormiljö.

Några snuttar har det blivit på avr, men desto mer på jobbet mot olika telekomplattformar.

Om vi tar ett litet exempel;
min appliktion vill göra utskrifter på en display, det kan vara lcd via 1.wire, eller någon annan typ. Funktionerna som kommer att avändas är writeDisplay(char *s), och clearDisplay(). Ytterligare en funktion behövs för initiering initDisplay(...), denna tar specifika argument för vilken port etc som den sitter på, eller om det är 1-wire kommunikation till den.

Min applikation struntar i hur writeDisplay(char *s), och clearDisplay() är implementerade, den bara förväntar sig att dom gör det dom ska.

Det enda i det läget som är plattformsberoende är initDisplay(), och oftast är det så att det är initieringen som måste ifdef:as.

Applikationen kan nu lika gärna använda en display som egentligen är ett fönster i tex Linux, eftersom make används av både i Linux och winavr och vips så kommer applikationens utskrift i fönsteret.

Det är mot denna nivå som applikationen ska jobba, annars kan det bli väldans bökigt.

I förlängningen av detta så finns även en idé att ha ett interface till datorn som en mcu kopplas till. Applikationen körs på mcu:n och extern hårvara (displayer knappar etc. emuleras av datorn.

Och räcker inte hastigheten till så är det bara att skaffa något som är snabbare, är det minnet som tryter skaffa mer minne.
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

FYI så finns det AVR-simulator (med debugger) för Linux om man så önskar.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK...

Alltså, en enskild funktion (t.ex writeDisplay) är ingen "applikation".

Vad jag menar är att en applikation (d.v.s när man bygger
ihop alla sina funktioner till något användbart) kan komma
att se ganska olika ut på en uC än på en Win/Linux miljö.
Och även (om man vill utnyttja resp arkitektur fullt ut) på
en AVR mot en PIC. Därför är det lite svårt att designa applikationer
utan tanke på vad det ska köras på. Men det märker du vad det lider...
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

Det är väl just det som är det fina i C, man kan göra precis som Ulf säger. Det blir tillräckligt för att få en "stomme". Sedan blir det att anpassa det mot hårdvaran. Fungerar galant.

Sodjan är nog inte van det, som bara kör Asm... ;) :oops:
Skriv svar