Ny men intresserad av microprocessor
Ny men intresserad av microprocessor
Var skall man börja om man som jag skulle vilja lära sig mer runt microprocessorer.
Programmering in IT har varit mitt yrke under många år men det har ju handlat om att göra program under windows, där jag gått från C via C++ upp till .NET utvecklingsmiljöer.
Nu skulle jag vilja testa mig fram till att skapa egna styrningar, mätningar eller vad jag nu kan komma på. Inte minst vore det kul att prova på andras experiment.
Så vad väljer man?
Arduino är något jag sett finns hos Elektrokit.
Andra val?
Önskvärt är ju att det finns tillgång till utbygnadsmöjligheter.
Betänk att jag är en fullständig novis på detta området!
/Bosse
Programmering in IT har varit mitt yrke under många år men det har ju handlat om att göra program under windows, där jag gått från C via C++ upp till .NET utvecklingsmiljöer.
Nu skulle jag vilja testa mig fram till att skapa egna styrningar, mätningar eller vad jag nu kan komma på. Inte minst vore det kul att prova på andras experiment.
Så vad väljer man?
Arduino är något jag sett finns hos Elektrokit.
Andra val?
Önskvärt är ju att det finns tillgång till utbygnadsmöjligheter.
Betänk att jag är en fullständig novis på detta området!
/Bosse
Re: Ny men intresserad av microprocessor
Som du säkert förstår så är dina frågor varken nya eller speciellt unika.
Alltså så är de besvarade många gånger tidigare dels i tidigare trådar
i själva forumet men även via informationen på formumets Wiki :
http://www.elektronikforumet.com/wiki/i ... =Main_Page.
Sedan finns det naturligstvis en uppsjö av information "på nätet" som helhet,
men det kan vara lite överväldigande i borjan, så klart.
Min poäng är att det kanske inte är rätt strategi att börja att detaljbesvara
dina frågor i ytterligare en tråd. Kolla gärna igenom vad som har skrivits
tidigare om samma saker i forumet (det är inte utan anledning som det
finns en "sök" funktion) och kolla gärna Wiki'ns sidor som mikrokontrollers.
Om du ska använda Arduino eller något annat är svårt att säga. Kanske Arduino
om du "bara" vill få något att "fungera", kanske köra AVR eller PIC "rent" om du
även är mer intresserad av själva tekniken som sådan...
Alltså så är de besvarade många gånger tidigare dels i tidigare trådar
i själva forumet men även via informationen på formumets Wiki :
http://www.elektronikforumet.com/wiki/i ... =Main_Page.
Sedan finns det naturligstvis en uppsjö av information "på nätet" som helhet,
men det kan vara lite överväldigande i borjan, så klart.
Min poäng är att det kanske inte är rätt strategi att börja att detaljbesvara
dina frågor i ytterligare en tråd. Kolla gärna igenom vad som har skrivits
tidigare om samma saker i forumet (det är inte utan anledning som det
finns en "sök" funktion) och kolla gärna Wiki'ns sidor som mikrokontrollers.
Om du ska använda Arduino eller något annat är svårt att säga. Kanske Arduino
om du "bara" vill få något att "fungera", kanske köra AVR eller PIC "rent" om du
även är mer intresserad av själva tekniken som sådan...
Re: Ny men intresserad av microprocessor
Tips:
EF wiki om mikrokontrollers
Du behöver:
* Nätagg.
* Kabel för att programmera mikroprocessorns EEPROM.
* Utvecklingskort med mikrokontroller + lysdioder mm (eller löda/bygga med kopplingsdäck).
* Schema hur lysdioder mm är kopplade till mikroprocessorn.
* Programvara för att skriva och skicka program.
* Kunskaper i C programmering.
EF wiki om mikrokontrollers
Du behöver:
* Nätagg.
* Kabel för att programmera mikroprocessorns EEPROM.
* Utvecklingskort med mikrokontroller + lysdioder mm (eller löda/bygga med kopplingsdäck).
* Schema hur lysdioder mm är kopplade till mikroprocessorn.
* Programvara för att skriva och skicka program.
* Kunskaper i C programmering.
Re: Ny men intresserad av microprocessor
Tar man den hårda vägen och lär sig grundläggande datorarkitektur kan man ta vilken mikrokontroller som helst som passar uppgiften med lite förstudier.
Re: Ny men intresserad av microprocessor
> Du behöver:
> ...
> * Kunskaper i C programmering.
För att göra *vadå* ?
Inte för att något av det som efterfrågades i första inlägget i alla fall.
Kunskaper i C är inte alls något grandkrav för att börja med mikrokontrollers.
> * Kabel för att programmera mikroprocessorns EEPROM.
Notera att man normalt (och kanske att föredra, för att inte förvilla de
som är nybörjade på detta) inte kallar programminnet i AVR/PIC för "EEPROM"
för att undvika sammanblandning med, just, EEPROM'et... (!)
"Flash" eller bara "programminnet" är bättre.
Eller bara "Kabel för att programmera mikroprocessorn", det räcker bra...
> ...
> * Kunskaper i C programmering.
För att göra *vadå* ?
Inte för att något av det som efterfrågades i första inlägget i alla fall.
Kunskaper i C är inte alls något grandkrav för att börja med mikrokontrollers.
> * Kabel för att programmera mikroprocessorns EEPROM.
Notera att man normalt (och kanske att föredra, för att inte förvilla de
som är nybörjade på detta) inte kallar programminnet i AVR/PIC för "EEPROM"
för att undvika sammanblandning med, just, EEPROM'et... (!)
"Flash" eller bara "programminnet" är bättre.
Eller bara "Kabel för att programmera mikroprocessorn", det räcker bra...

-
- Inlägg: 7099
- Blev medlem: 31 augusti 2006, 16:42:43
- Ort: Jamtland
Re: Ny men intresserad av microprocessor
Med arduino kommer du långt. Det är ingen stor sak att komma igång med den. Du behöver ingen programmerare. En USB-kabel, väggvårta och lite tryckknappar, resistorer och lysdioder. Titta på arduino hemsidan och beställ grejorna på elektrokit.
Lite verktyg, kopplingstråd och breadbord är också bra.
Du kommer ganska långt så, innan du behöver gå vidare.
Lite verktyg, kopplingstråd och breadbord är också bra.
Du kommer ganska långt så, innan du behöver gå vidare.
Re: Ny men intresserad av microprocessor
Tack för infon.
Läs igenom många trådar utan att bli så mycket klokare så det får bli en arduino som läromedel.
/Bosse
Läs igenom många trådar utan att bli så mycket klokare så det får bli en arduino som läromedel.
/Bosse
Re: Ny men intresserad av microprocessor
Ja, Arduino Duemilanove är ett bra val om man vill komma igång snabbt. Det sitter även en ICSP-header på den som man kan använda om man skaffar en riktig programmerare senare. Och det bör man nog göra om man är seriös med att vilja lära sig mikrokontrollers. Blir lite dyrt i längden att köpa arduinos till alla småprojekt...
Re: Ny men intresserad av microprocessor
För att få en bättre förståelse över vad som händer kan du ju alltid börja att programmera i assembler. Microchips PIC och Atmels AVR mikroprocessorer är populära och lätta att hitta info runt. När du känner dig hyfsat bekväm i assembler kan du ju alltid gå över till C . När man gör större program blir det lätt oöverskådligt om man gör allt i assembler. Men jag tycker som sagt att det är bra att börja i assembler - man får en väldigt bra förståelse över vad som verkligen händer.
Re: Ny men intresserad av microprocessor
Tjenare Bosse!
Jag skulle föreslå att du leta rätt på en microcontroller som det finns gratis c-kompilator till. På så sätt slipper du assembler. Assembler är verkligen ett steg baklänges om du vill göra stora komplexa projekt. Men om det är enkla saker så är assembler helt ok. Jag har programmerat en hel del i assembler. Det är bra för att man lär sig skriva effektiv kod, som man inte kan komma i närheten av i C-kod. Det är tidsödande, men ger en bra förståelse om processorn.
Jag får känslan av ditt inlägg att du inte grejat med elektronik förut. Då kanske det vore bra om du kunde lära dig om det på ett enkelt och tilltalande sätt också. Hur du vill gå till väga med detta är ju beroende av vad du har för slutmål. Det finns så mycket man kan lära sig så det vore bra om du hade lite koll på åt vilket håll du vill dra så att du kan ge dig på rätt saker.
Jag föreslår ett par saker så får du kolla upp och se vad du tycker, mycket här nedan bygger inte på C, men kolla runt lite, det beror ju lite på vad du är sugen på att lära dig...
http://www.xgamestation.com/ på denna sida hittar du saker som är relaterade till att bygga egna TV-spel.
http://www.xgamestation.com/view_product.php?id=47 Denna kanske kunde vara intressant. Någon annan kan kanske svara om det finns gratis c-compiler till Microchip's nya 16-Bit PIC24 kontroller.
Notera dock att chipet som heter SX och sitter i en del av deras saker har slutat tillverkas, och kommer antagligen att ta slut om några år.
Är du mer intresserad av saker som liknar riktiga datorer, kanske du ska ta en koll på detta...
http://beagleboard.org/ Riktigt snabb och relativt billigt, ingen erfarenhet av detta dock, kanske för komplicerat för din smak.
Vill du hålla på med lite robotar kanske detta kunde vara kul...
http://www.robonova.com Det finns massa andra enklare robotar om man vill gå den vägen, detta är bara ett exempel.
Du skriver ju att du vill testa lite enkla styrningar. Kanske du ska kolla in denna sidan då...
http://www.parallax.com/ Men det kan vara ett steg bort ifrån det du vill, det beror på vad dina mål är. Mycket av deras saker bygger varken på C eller assembler utan deras egna script språk. Det kan ju vara ett enkelt sätt att komma igång lite med elektronik, och se om du tycker det är kul.
Det jag kan tänka mig är viktigast i ditt läge är att du hittar något med bra undervisningsmaterial, så att det blir kul. Sen är det bra om det kanske handlar om saker du tycker är intressant. Sen kanske du skulle fundera på om du vill lära dig löda och sånt, eller om du nöjer dig med att styra saker. Men var medveten om att beroende på vad du väljer så går du in i olika återvändsgränder. Så därför behöver du nog fundera lite på vad du egentligen vill, det finns otroligt många vägar att välja att gå.
// Daniel
Jag skulle föreslå att du leta rätt på en microcontroller som det finns gratis c-kompilator till. På så sätt slipper du assembler. Assembler är verkligen ett steg baklänges om du vill göra stora komplexa projekt. Men om det är enkla saker så är assembler helt ok. Jag har programmerat en hel del i assembler. Det är bra för att man lär sig skriva effektiv kod, som man inte kan komma i närheten av i C-kod. Det är tidsödande, men ger en bra förståelse om processorn.
Jag får känslan av ditt inlägg att du inte grejat med elektronik förut. Då kanske det vore bra om du kunde lära dig om det på ett enkelt och tilltalande sätt också. Hur du vill gå till väga med detta är ju beroende av vad du har för slutmål. Det finns så mycket man kan lära sig så det vore bra om du hade lite koll på åt vilket håll du vill dra så att du kan ge dig på rätt saker.
Jag föreslår ett par saker så får du kolla upp och se vad du tycker, mycket här nedan bygger inte på C, men kolla runt lite, det beror ju lite på vad du är sugen på att lära dig...
http://www.xgamestation.com/ på denna sida hittar du saker som är relaterade till att bygga egna TV-spel.
http://www.xgamestation.com/view_product.php?id=47 Denna kanske kunde vara intressant. Någon annan kan kanske svara om det finns gratis c-compiler till Microchip's nya 16-Bit PIC24 kontroller.
Notera dock att chipet som heter SX och sitter i en del av deras saker har slutat tillverkas, och kommer antagligen att ta slut om några år.
Är du mer intresserad av saker som liknar riktiga datorer, kanske du ska ta en koll på detta...
http://beagleboard.org/ Riktigt snabb och relativt billigt, ingen erfarenhet av detta dock, kanske för komplicerat för din smak.
Vill du hålla på med lite robotar kanske detta kunde vara kul...
http://www.robonova.com Det finns massa andra enklare robotar om man vill gå den vägen, detta är bara ett exempel.
Du skriver ju att du vill testa lite enkla styrningar. Kanske du ska kolla in denna sidan då...
http://www.parallax.com/ Men det kan vara ett steg bort ifrån det du vill, det beror på vad dina mål är. Mycket av deras saker bygger varken på C eller assembler utan deras egna script språk. Det kan ju vara ett enkelt sätt att komma igång lite med elektronik, och se om du tycker det är kul.
Det jag kan tänka mig är viktigast i ditt läge är att du hittar något med bra undervisningsmaterial, så att det blir kul. Sen är det bra om det kanske handlar om saker du tycker är intressant. Sen kanske du skulle fundera på om du vill lära dig löda och sånt, eller om du nöjer dig med att styra saker. Men var medveten om att beroende på vad du väljer så går du in i olika återvändsgränder. Så därför behöver du nog fundera lite på vad du egentligen vill, det finns otroligt många vägar att välja att gå.
// Daniel
Re: Ny men intresserad av microprocessor
> ...På så sätt slipper du assembler...Assembler är verkligen ett steg baklänges...
> ...
> ...Det är bra för att man lär sig skriva effektiv kod...
> ...ger en bra förståelse om processorn...
Bestäm dig !
Dessutom så finns det inget enda rakt svar på detta om assembler kontra C.
Dels så varierar det från nybörjar stadiet och framåt.
Dels så varierar det mycket beroende på vilka/vilken processor man
jobbar med och på vad det är man ska "göra".
Det finns alltså inget egenvärde i sig i att "slippa assembler". Det är väl
igentligen det som var min poäng...
> ...
> ...Det är bra för att man lär sig skriva effektiv kod...
> ...ger en bra förståelse om processorn...
Bestäm dig !

Dessutom så finns det inget enda rakt svar på detta om assembler kontra C.
Dels så varierar det från nybörjar stadiet och framåt.
Dels så varierar det mycket beroende på vilka/vilken processor man
jobbar med och på vad det är man ska "göra".
Det finns alltså inget egenvärde i sig i att "slippa assembler". Det är väl
igentligen det som var min poäng...

Re: Ny men intresserad av microprocessor
Assembler är det ultimativa sätt att:
* lära sig hur allting fungerar ner på bit-nivå.
* lära sig att sköta om resurser och optimera värden.
* lära sig att strukturera programmeringen.
* skriva mycket kod för inte så mycket funktion.
Assembler är alltså eminent för att lära sig HUR systemet fungerar men när man sedan är klar med den del och istället vill göra större program kan det vara enklare att "stega upp" till t.ex. C där det kan vara lättare att överskåda större program.
Assembler har även en viktig funktion när man behöver snabbast möjlig kod vid t.ex. interrupt eller andra specifika tillfällen.
Letar man igenom forumet ser man att det är många som går direkt på ett högnivåspråk och sedan gör dundertabbar för att de inte har fattat hur allting hänger ihop.
Man kan självklart uppnå samma insikt från ett högnivåspråk men det är inget man är "tvingad till" på samma sätt som man är i assembler.
* lära sig hur allting fungerar ner på bit-nivå.
* lära sig att sköta om resurser och optimera värden.
* lära sig att strukturera programmeringen.
* skriva mycket kod för inte så mycket funktion.
Assembler är alltså eminent för att lära sig HUR systemet fungerar men när man sedan är klar med den del och istället vill göra större program kan det vara enklare att "stega upp" till t.ex. C där det kan vara lättare att överskåda större program.
Assembler har även en viktig funktion när man behöver snabbast möjlig kod vid t.ex. interrupt eller andra specifika tillfällen.
Letar man igenom forumet ser man att det är många som går direkt på ett högnivåspråk och sedan gör dundertabbar för att de inte har fattat hur allting hänger ihop.
Man kan självklart uppnå samma insikt från ett högnivåspråk men det är inget man är "tvingad till" på samma sätt som man är i assembler.
Re: Ny men intresserad av microprocessor
Jo jag håller med er i era inlägg.
Men jag står fast vid vad jag sagt. Att skriva ett stort projekt i assembler tar enorm tid.
Som sagt... "Assembler är verkligen ett steg baklänges om du vill göra stora komplexa projekt" ...
"Men om det är enkla saker så är assembler helt ok." ...
"Det är bra för att man lär sig skriva effektiv kod, som man inte kan komma i närheten av i C-kod. Det är tidsödande, men ger en bra förståelse om processorn."
Visst, det ligger helt klart ett riskmoment med att man ska programmera onödigt dålig kod C, om man tidigare programmerat på en kontorsdator, och man inte har erfarenhet av att programmera assembler.
Men snackar vi ett litet projekt, så handlar det mest om att ställa in hårdvaran och då är det hugget som stucket. Och är själva logiken som driver applikationen är litet, så kan man göra stora prestandavinster med assembler och kan välja något enklare mikrokontroller. Men har man inget behov att kunna göra komplexa saker så är assembler bättre och i många fall snabbare och enklare.
Men börjar man göra komplexa saker som kräver mycket programmering är det ofta inte försvarbart att programmera assembler. Visst man kan gilla assembler jätte mycket. Men tror de flesta människor nog hellre programmerar en månad i c på ett projekt, än att sitta med programmeringen i ett halvår i assembler. Det man hinner slänga ihop på en dag i C kod kanske tar en vecka i assembler kod. Skriver man så stora applikationer, så vill man nog också ha möjligheten att kunna flytta koden till en annan processor längre fram. Har man skrivit koden i Assembler så är man låst och kan inte flytta applikationen.
Allt handlar om slutmålet. Som jag sedan sagt, det finns en massa återvändsgränder när det kommer till elektronik och programmering. Det finns inga generella sanningar som gäller för alla projekt, man blir helt enkelt tvungen att välja det som passar bäst för det man vill göra.
Men jag står fast vid vad jag sagt. Att skriva ett stort projekt i assembler tar enorm tid.
Som sagt... "Assembler är verkligen ett steg baklänges om du vill göra stora komplexa projekt" ...
"Men om det är enkla saker så är assembler helt ok." ...
"Det är bra för att man lär sig skriva effektiv kod, som man inte kan komma i närheten av i C-kod. Det är tidsödande, men ger en bra förståelse om processorn."
Visst, det ligger helt klart ett riskmoment med att man ska programmera onödigt dålig kod C, om man tidigare programmerat på en kontorsdator, och man inte har erfarenhet av att programmera assembler.
Men snackar vi ett litet projekt, så handlar det mest om att ställa in hårdvaran och då är det hugget som stucket. Och är själva logiken som driver applikationen är litet, så kan man göra stora prestandavinster med assembler och kan välja något enklare mikrokontroller. Men har man inget behov att kunna göra komplexa saker så är assembler bättre och i många fall snabbare och enklare.
Men börjar man göra komplexa saker som kräver mycket programmering är det ofta inte försvarbart att programmera assembler. Visst man kan gilla assembler jätte mycket. Men tror de flesta människor nog hellre programmerar en månad i c på ett projekt, än att sitta med programmeringen i ett halvår i assembler. Det man hinner slänga ihop på en dag i C kod kanske tar en vecka i assembler kod. Skriver man så stora applikationer, så vill man nog också ha möjligheten att kunna flytta koden till en annan processor längre fram. Har man skrivit koden i Assembler så är man låst och kan inte flytta applikationen.
Allt handlar om slutmålet. Som jag sedan sagt, det finns en massa återvändsgränder när det kommer till elektronik och programmering. Det finns inga generella sanningar som gäller för alla projekt, man blir helt enkelt tvungen att välja det som passar bäst för det man vill göra.
- Swech
- EF Sponsor
- Inlägg: 4750
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Ny men intresserad av microprocessor
Det jag personligen har svårt att acceptera med C (alla högnivå spåk) är att man inte har kontroll på
vad som händer.
Hur många trådar finns det inte med problem typ:
"min compiler hittar på en massa skumma saker"
"om jag deklarerar ditten och datten så får jag felkoder"
Likaså så finns det så många "kreativa" lösningar där man försöker ta sig runt problem som finns
i kompilatorn, t.ex. en tråd där man inte vill initiera RAM minnet... Någon sitter inne med
en lösning som fungerar och säkerligen även var tänkt att användas på detta sätt men
det kan vara tidsödande att få fram denna information.
Den dagen man lämnar 8 bitars bakom sig så får det väl bli C
Bara att inse att man är en gammal hund med ovanligt stora problem att lära sig sitta
Swech
vad som händer.
Hur många trådar finns det inte med problem typ:
"min compiler hittar på en massa skumma saker"
"om jag deklarerar ditten och datten så får jag felkoder"
Likaså så finns det så många "kreativa" lösningar där man försöker ta sig runt problem som finns
i kompilatorn, t.ex. en tråd där man inte vill initiera RAM minnet... Någon sitter inne med
en lösning som fungerar och säkerligen även var tänkt att användas på detta sätt men
det kan vara tidsödande att få fram denna information.
Den dagen man lämnar 8 bitars bakom sig så får det väl bli C

Bara att inse att man är en gammal hund med ovanligt stora problem att lära sig sitta
Swech