Programmeringsspråk???

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Pajen
Inlägg: 4
Blev medlem: 25 oktober 2005, 22:51:34
Ort: Skövde

Programmeringsspråk???

Inlägg av Pajen »

Tjenare!!

Lika bra att erkänna direkt,jag är TOTALT nybörjare när det gäller att programmera, men det verkar va lite för skoj med mikrokontrollers för att låta bli.
Nu till frågan, vilket programmeringsspråk är bäst/enklast/smartast att lära sig???

Hänvisning till böcker/nätet (på svenska) mottages gladeligen.
Användarvisningsbild
lgrfbs
Inlägg: 7333
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg av lgrfbs »

Välkommen till forumet
Många kommer att säga att det första du ska lära dig är
ASM (Assembler) och i idén håller jag fullt med om.

Jag personligen trivs bäst i mikroelektronika program:
COMPILERS
Användarvisningsbild
Icecap
Inlägg: 26681
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Alltså..... smaken är som baken!

Jag svär till C(++) pga. att man snabbt kan åstakomma resultat men jag har kört ASM till PIC i mycket lång tid.

Jag började med ASM där någongång i stenåldern eller var det 1800 kallt...
Då fick jag ett mycket bra inblick i hur en mikroprocessor (µC) fungerade och det inblick har gjort att jag idag kan byta friskt mellan olika typer och välja rätt processor till rätt jobb (och det levar jag av nu).

Så jag skulle vilja påstå att vilket språk du ska välja beror på vad du vill åstakomma:
* Vill du lära dig hur den fungerar och bli bra på att "klämma den i kanten" = Assembler!
* Vill du att den ska blinka med en lampa om en kvart (och inte kunna så mycket mer) = BASIC.
* Vill du göra funktioner och inte är så intresserat i exakt hur en µC fungerar = C.

Vill du börja med assembler och sedan "jobba dig uppåt" vill jag kraftigt rekommendera att undvika alla former för BASIC, dess struktur gör att enkla jobb blir onödigt krångliga, C har en högre inlärningströskel men sedan är det relativt lätt..... och som sagt: BASIC suger.

Ska du börja med assembler vill jag även rekommendera PIC, deras instruktionsset är begränsat (RISC = Reduced Instruction Set Controller) vilket gör att man måste lära en mindre mängd för att komma igång.

Men viktigast av allt: om du inte bara ska köra "torrträning" men verkligen ska se lampor blinka osv: skaffa en bra programmeringsenhet, helst av allt en ICSP (In-Circuit Serial Programming)! Dessa "bara 5 komponenter"-programmeringsenheter man hittar på nätet är oftast inte värd en potta piss, att ha en bra grej från början sparar MÅNGA bekymmer och energi som man då istället kan lägga på att lära sig och ha kul.

Att lägga en kväll på att försöka att få programmet in i processorn är ganska frustrerande och lustdödande, att lägga den på att utveckla program och faktisk se lampor blinka som man har programmerat är kul. Välj själv...
Senast redigerad av Icecap 23 augusti 2006, 08:36:42, redigerad totalt 1 gång.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1355
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Inlägg av baron3d »

Ja, Håller med Isecap.
brauer
Inlägg: 90
Blev medlem: 20 februari 2005, 14:30:00

Inlägg av brauer »

Icecap skrev:Att lägga en kväll på att försöka att få programmet in i processorn är ganska frustrerande och lustdödande ...
jag håller också med..... 8)
Användarvisningsbild
Kezo
Inlägg: 711
Blev medlem: 28 november 2005, 19:53:12
Ort: Linköping

Inlägg av Kezo »

Håller också med!
När det gäller programmerare för pic så kan jag (tilsammans med många andra) rekommendera wisp628 från sodjan här på forumet!
Användarvisningsbild
Icecap
Inlägg: 26681
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Håller helt med om WISP'en, har själv en som fungerar mycket bra. Tänkte dock att jag skulle låta någon annan reklamera denna gång ;-)

Det finns såklart ung. likvärda till andra processorfamiljer men det viktiga är att man verkligen skaffer en bra till att börja med, man kommer ju att skaffa den iaf. om man blir biten.

Varning för Velleman (K8048?) PIC-programmeringsenheten, har läst om en hel del problem med den (och den är i övrigt dyrare än en WISP så varför köpa en sån?)

Fördelen med ICSP är att man kan koppla upp sin koppling och antingen låta programmeringspinnerna vara lediga till programmeringsenheten (4 st på en WISP628) eller kolla de enstaka begränsningar som finns om man vill dela programmeringspinnens funktion med annat.

Jag har monterat en 10-polig fladkabelkontakt i ändan på min WISP628 och har då ett antal kabelbitar som jag kan koppla upp med:
* 2 st med lödändor, perfekt när man inte har ICSP-kontakt men måste uppgradera ändå. Flera för att testa när fler enheter ska prata med varandra, snabb omprogrammeringsväxling.
* en med stela pinnar på, till experimentboard (stick-i-hål)

Jag gillar att ta en processor med rikligt med pinnar/portar och när allt är klart banta ner till lämpligt antal, då behöver man inte strula med att anpassa o kolla om det går, då kan man utveckla funktionen, testa och när programmet gör rätt kan man putsa på resten.

och ja, jag har "lite" samples i lådan med många pinner till detta men produktionsexemplaren köper jag konsekvent.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> jag är TOTALT nybörjare när det gäller att programmera,

Programmering överhuvudtaget ? Eller bara på microcontrollers ?

Andra har förespråkat ASM (medan man lär sig vad microcontrollers
handlar om) och jag instämmer.
Och av någon anledning tycker även jag att Wisp628 är ganska trevlig... 8)

> Hänvisning till böcker/nätet (på svenska) mottages gladeligen.

I stor sätt kan du glömma det. Det är engelska som gäller.

Icecap> Jag har monterat en 10-polig fladkabelkontakt i ändan på min WISP628...

Notera att den 15-pol kabel som ingår i lite äldre ljudkort (med "game"-kontakt på en separat panel)
fungerar utmärkt som ICSP kabel mellan Wisp628 och t.ex ett experimentkort (vero-board)
Wisp628 till vänster och ett vero-board till höger :
Bild
Pajen
Inlägg: 4
Blev medlem: 25 oktober 2005, 22:51:34
Ort: Skövde

Inlägg av Pajen »

sodjan skrev:

"Programmering överhuvudtaget ? Eller bara på microcontrollers ? "

Kan "bara" programmera PLC, och vad jag har sett hitills (tjuvkikat i en C++-bok) så är det i stort sett inget som jag känner igen. (Känner dock igen begreppet "Int", alltid ngt :D :D )
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Annars så är microchips ICD2 väldigt bra - tyvärr lite dyrare, men snabb och driftsäker samt att ICD-n fungerar helt utan problem - inte alltid man behöver ICD, men det spar mycket tid när man har strul med att få något att fungera som önskat.

ASM eller högnivåspråk tja, allt beror på hur stora system och hur stora controllers du skall köra och även om det är CISC eller RISC arkitektur.

När det gäller pic har jag gått från assambler till basic/c, men nästan helt gått tillbaka till assambler och försökt blivit bättre på assamblern. Orsaken till återgången till assambler är att det blir bättre, snabbare och mer kontrollerat. Sedan är det så att med många färdiga rutiner som man återanvänder så är det inte så tidsödande att skriva assambler program speciellt inte om man har ICD så att man kan lätt debugga sin kod.

C är i teorin bra, men lider ofta av för mycket buggar i kompilatorerna, de använder registerna ologiskt, har inte alltid koll på stacken så att man riskerar stackoverflow (trist på pic då man itne får någon varning när detta händer), ger gitter i koden då man inte kan räkna på exakta tidsåtgången för koden, rena fel i specialfunktioner, begärnsningar i specialfunktioner så att man i rutinerna kan använda valfria pinnar/portar för exempelvis LCD drivning. Nej, till tidskritiska applikationer är assambler bättre är min åsikt.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> (tjuvkikat i en C++-bok)...

C++ bok till vadå ? Microcontrollers ?
Du kan inte bara ta en bok vilken som helst...

Sen när det gäller assembler...

Många förknippar det med gammal kod i "absolute mode" med massor
av hårdkodade adresser (EQU för register t.ex) och en allmänt snårig
struktur.

Modern relokerbar assemblerkod är något helt annat.
- Länkare för dynamisk allokering av programminne och register (CODE, RES).
- Modulärt med flera ASM filer.
- Macros för enklare och mer läsbar kod.
- "Assembly time calculations" (SET).
- "Conditional assembly" (IF, IFDEF) för mer flexibel kod, t.ex subrutiner som fungerar på både PIC16 och PIC18.

Så det går utmärkt att både skriva snygg och lättläst kod i assembler
samtidigt som man behåller 100% kontroll över applikationen.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Jag köpte en basic stamp för ett tagsedan, för att jag trodde att det var det abselut lättaste. menar ni att det fins lättare saker??

jag har en fråga angående en pic processor, hu är dem i pris & funktionjämfört med en basic stamp? (en 16portas basic stamp ligger på starx över 500:-)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Stamp är kanske "lätt" att programmera, ungefär som att det är
"lätt" att bygga med LEGO. Men begränsningarna visar sig ganska snabbt.

Exakt varför ska det vara lätt ??
Notera att "lätt" oftast är detsamma som "begränsat". Oftast...

> jag har en fråga angående en pic processor, hu är dem i pris &
> funktionjämfört med en basic stamp? (en 16portas basic stamp
> ligger på starx över 500:-)

Du får 10-50 PIC processorer för det beroende på modell...
Användarvisningsbild
Icecap
Inlägg: 26681
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

För att inte glömma en avsevärd ökning i prestanda också.....
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

Håller med tidigare talare om att du bör koda i assembler framförallt då du ändå inte har några kunskaper om något högre programmeringsspråk sedan tidigare.
Sedan kan man eventuellt testa med lite C-kod (vilket jag gillar mer för att det är effektivt (tidsmässigt)).

Sen val av processor verkar det som att PIC eller AVR (båda med RISC-arkitektur) är enklast och billigast att börja med, det finns flest att fråga om hjälp osv.
Skriv svar