hur bygger man en programerare?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
ny börjare
Inlägg: 109
Blev medlem: 1 november 2005, 15:31:18
Ort: Hemma

Inlägg av ny börjare »

sodjan skrev:Som nybörjare borde du börja med assembler tills du tror/tycker att du behärskar pocessorarkitekturen. Räkna med ett år eller så. Då kan det vara läge att byta till något annat (om det skall vara helt nödvändigt... :-) ).
ska jag börja med assembler tills jag "behärskar pocessorarkitekturen"
behöver man veta exakt hur en processor fungerar för att kunna programera den? en kock behöver väl inte förstå exakt hur en spis funkar för att kunna steka pannkakor?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> behöver man veta exakt hur en processor fungerar för att kunna programera den?

Lite beroende på vad du menar med "exakt", men i princip, ja.
ny börjare
Inlägg: 109
Blev medlem: 1 november 2005, 15:31:18
Ort: Hemma

Inlägg av ny börjare »

förklara vad du menar, så gott du kan
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Man behöver inte veta vilken transistor i kärna som gör vad, man behöver veta vad registranas värden egentligen gör samt vad som kan förväntas när programmet körs.

I vissa fall är det nödvändigt att veta den exakta timing för vissa hårdvaruhändelser osv men mer än det tror jag inte man behöver.

Ska du programmera måste du ju såklart veta t.ex. vilken port/pinne som är kopplat till vad osv och programmet lär ju inte duga till något om du inte fattar vad varje instruktion egentligen gör eller hur?

Men har du samlat ihop de sakerna ser jag inget hinder för att köra så det ryker....

Kom ihåg bara att avkoppla spänningsmatningen, mata alla pinnar som ska matas och låt bli att låta en portpinne "hänga fritt" som input, behövs den inte är det en mycket bra idé att sätta den till output.
gvs
EF Sponsor
Inlägg: 1688
Blev medlem: 18 oktober 2003, 14:20:34
Ort: Göteborg
Kontakt:

Inlägg av gvs »

Jag tycker det verkar som om Wispen inte stödjer 12f683. Lite tråkigt tycker jag då den har fördelar som liten, A/D, PWM. Vilken programmerare rekommenderas för denna?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Jag tycker det verkar som om Wispen inte stödjer 12f683.

Fungerar helt OK.
ny börjare
Inlägg: 109
Blev medlem: 1 november 2005, 15:31:18
Ort: Hemma

Inlägg av ny börjare »

Icecap skrev:Man behöver inte veta vilken transistor i kärna som gör vad, man behöver veta vad registranas värden egentligen gör samt vad som kan förväntas när programmet körs.

I vissa fall är det nödvändigt att veta den exakta timing för vissa hårdvaruhändelser osv men mer än det tror jag inte man behöver.

Ska du programmera måste du ju såklart veta t.ex. vilken port/pinne som är kopplat till vad osv och programmet lär ju inte duga till något om du inte fattar vad varje instruktion egentligen gör eller hur?

Men har du samlat ihop de sakerna ser jag inget hinder för att köra så det ryker....

Kom ihåg bara att avkoppla spänningsmatningen, mata alla pinnar som ska matas och låt bli att låta en portpinne "hänga fritt" som input, behövs den inte är det en mycket bra idé att sätta den till output.
det var bra sagt:)
Om jag tolkar det du skrivit rätt (om inte, säg till) behöver man inte veta så mycket om microprocessorn, det man ska veta och förstå är hur programeringsspråket är uppbyggdt och hur man använder det.
Vad jag har fattat är C programmeringsspråket man ska välja, tyvärr vet jag ingenting om C, så om någont kunde dela med sig av sin kunskap skulle jag vara mycket glad. Eftersom jag kan lite visual basic och pbasic (har kollat på paralax hemsida), skulle det hjälpa om någon gjorde en gämförelse mellan C och visual basic och pbasic
kan någon visa hur ser t ex en loop ut i C?
sprawl
Inlägg: 299
Blev medlem: 9 juni 2004, 13:01:33
Ort: Göteborg

Inlägg av sprawl »

en for-loop:

int a;
for(a=0; a<10; a++)
{
//gör något
}


en while-loop:

while(true)
{
//gör något
}


en do while-loop:

do
{

}
while(true);

Även om denna förklarar skillnaden mellan C# och VB.NET så stämmer det som handlar om
* Variabler
* Conditional statements
* Selection Statements
* FOR Loops
* WHILE Loops
* Säkert mer...

VB.NET / C# skillnad

Nu kanske den är missvisande eftersom det inte är vanlig VB mot just C, så du får välja själv om du vill kolla på länken :P

/Andreas
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Inlägg av Kaggen »

ny börjare skrev:det var bra sagt:)
Om jag tolkar det du skrivit rätt (om inte, säg till) behöver man inte veta så mycket om microprocessorn, det man ska veta och förstå är hur programeringsspråket är uppbyggdt och hur man använder det.
Du behöver inte veta hur microcontrollern funkar internt, du behöver däremot veta hur du utnyttjar microcontrollerns funktioner och register.

Du jämförde microcontrollern med en spis, jag skulle vilja jämföra den med en verktygslåda. För att spika måste du kunna hantera en hammare, för att borra, en borr, för att såga, en såg, för att skruva, en mejsel.

För en microcontroller måste du kunna hantera in/ut portar, A/D omvandlare, timers och veta dess begränsningar som RAM-minne, programminne och klockfrekvens.

Allt i en microcontroller styrs med ettor och nollor, så det allra viktigaste, skulle jag vilja påstå, är en stark förståelse för binära och hexadecimala tal och aritmetiska operationer (AND, OR, NOT m.fl.). I andra hand kommer språket (assembler, C, C++ ...) och hur programspråket hanterar ovanstående tal och operationer.

Med VB så är man enormt bortskämd. Ofta behöver man inte tänka på typer och minne, ungefär som ett barn aldrig behöver bry sig om hur maten kan stå varm och färdig på bordet varje dag.

Med microcontrollers är det inte lika lyxigt. Man lär, så att säga, odla sin mat, skörda och koka den själv. :)

mvh Mats
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> kan någon visa hur ser t ex en loop ut i C?

Innan du alls behöver bekymra dig om det, behöver du lära dig den processor arkitektur som loopen skall köras på. Du behöver t.ex kunna avgöra om det överhuvudtaget är en loop som är lämpligt just i det fallet.

Kom också ihåg att mikrokontrollers handlar lika mycket elektronik/hårdvara som "programmering". Glöm VB, det här handlar om något helt annat.

> Om jag tolkar det du skrivit rätt, behöver man inte veta så mycket om microprocessorn,

Nja... Innan du skriver en rad kod (helt oavsett om det är assembler eller något 3G språk), måste/bör du ha plöjt igenom databladet för den processor du tänker använda så att du känner dig hemtam med det som står där, och snabbat kan hitta tillbaks till rellevanta kapitel när (inte om) du kör fast.

Varför försöka ta genvägar ? Du lurar bara dig själv och kommer att få onödiga problem. Och i detta avseende (alltså behovet av att veta hur den processor du skall köra på fungerar) skilljer sig inte C eller Basic på något sätt från assembler.

Det kan *verka* som om man snabbt kan komma igång med enkla program i C eller Basic, men så snart det blir lite mer komplicerat så får C/Basic programmeraren som har slarvat i början ofta *mer* problem än assembler programmeraren som har tagit sig tid och lärt sig mer från grunden.
Skriv svar