C programmering till PIC
C programmering till PIC
Tjena.
Har sysslat en del med Java och C/C++. Tänkte ta steget till att börja programmera PiC.
Har redan köpt och byggt en PIC-programmerare
Velleman K8048. Såg på forumet att den inte är poppis men nu har jag redan köpt den så jag kan inte göra ngt åt det. Än så länge har jag sett endast möjlighet att skriva assemblerkod. Jag vill ju programmera i C eller Java. Vad finns det för C/Java miljöer som passar ihop med min K8048.
F.ö så funkar min K8048 utan problem vad jag sett än så länge.
Tacksam för all hjälp
Har sysslat en del med Java och C/C++. Tänkte ta steget till att börja programmera PiC.
Har redan köpt och byggt en PIC-programmerare
Velleman K8048. Såg på forumet att den inte är poppis men nu har jag redan köpt den så jag kan inte göra ngt åt det. Än så länge har jag sett endast möjlighet att skriva assemblerkod. Jag vill ju programmera i C eller Java. Vad finns det för C/Java miljöer som passar ihop med min K8048.
F.ö så funkar min K8048 utan problem vad jag sett än så länge.
Tacksam för all hjälp
Kolla på MikroC for PIC (www.mikroe.com/en/). Sedan använder du bara programet som kom med programmeraren för att bränna .hex:en till PIC:en
> Vad finns det för [valfritt spräk här] miljöer som passar ihop med min K8048 ?
En programmerare (som t.ex K8048 eller Wisp628) ger fullständigt f-n i
vilket språk eller verktyg som HEX filen är skapad från !!
En HEX fil är en HEX fil är en HEX fil...
Java ?? Varför vill du programmera PICs i Java ???
> Tänkte ta steget till att börja programmera PiC.
Börja med MPLAB och kör i asm till du "kan" PIC arkitekturen.
Då har du grunderna för att även lyckas i C (eller något annat HLL).
Vilken C-komp som du ska/bör köra beror mycket på vilka
PIC processorer du tänker använda !
En programmerare (som t.ex K8048 eller Wisp628) ger fullständigt f-n i
vilket språk eller verktyg som HEX filen är skapad från !!
En HEX fil är en HEX fil är en HEX fil...
Java ?? Varför vill du programmera PICs i Java ???
> Tänkte ta steget till att börja programmera PiC.
Börja med MPLAB och kör i asm till du "kan" PIC arkitekturen.
Då har du grunderna för att även lyckas i C (eller något annat HLL).
Vilken C-komp som du ska/bör köra beror mycket på vilka
PIC processorer du tänker använda !
newbadboy: det är faktisk brukligt här att man kollar upp de länkar man får som ett specifikt svar på en fråga. Speciellt i MikroC's fall ville du då tydligen kunna läsa att det är ett gratisprogram om man inte använder det professionellt samt att det utan en licens inte kan generera kod större än en viss storlek.
Senast redigerad av Icecap 17 september 2006, 11:46:52, redigerad totalt 1 gång.
- Henrik Kjellberg
- Inlägg: 539
- Blev medlem: 26 december 2004, 00:59:27
- Ort: Lund
jag är rätt förtjust i hitide:
http://www.htsoft.com/products/hitide3.php
Den bygger på Java-utvecklingsmiljön Eclipse, men har byggts om för att köra C till pic!
http://www.htsoft.com/products/hitide3.php
Den bygger på Java-utvecklingsmiljön Eclipse, men har byggts om för att köra C till pic!
- 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:
Varför?
Varför inte börja med asm? I slutändan kommer du att spara tid då du kommer att lära dig pic bättre på det viset. Och hur man än vänder och vrider på det så gör sig uC bäst i asm eftersom det är först då man kan få ut ordentliga prestanda ur dem. Du slipper ändå inte undan att läsa datablad eftersom man i princip måste lära sig hur portar och dess styning är organiserad, CCP-modelens funktion, UARTen funktion, olika klockmoder, comparator, A/D, interupt, timers - litar du på att din HLL compilator skall lösa detta åt dig så kommer du slita många hår innan du får saker att fungera som du vill.
Kan du detta så kommer en HLL vara till god hjälp för att skriva icketidskritiska, ickeminnesoptimerade program snabbt, men tyvärr måste man lära sig detta först och en utskrift på databladet är en bra start för några timmar nyttig läsning.
Varför inte börja med asm? I slutändan kommer du att spara tid då du kommer att lära dig pic bättre på det viset. Och hur man än vänder och vrider på det så gör sig uC bäst i asm eftersom det är först då man kan få ut ordentliga prestanda ur dem. Du slipper ändå inte undan att läsa datablad eftersom man i princip måste lära sig hur portar och dess styning är organiserad, CCP-modelens funktion, UARTen funktion, olika klockmoder, comparator, A/D, interupt, timers - litar du på att din HLL compilator skall lösa detta åt dig så kommer du slita många hår innan du får saker att fungera som du vill.
Kan du detta så kommer en HLL vara till god hjälp för att skriva icketidskritiska, ickeminnesoptimerade program snabbt, men tyvärr måste man lära sig detta först och en utskrift på databladet är en bra start för några timmar nyttig läsning.
Grejen är att jag har pluggat en hel del C osv men i princip aldrig varit i kontakt med asm. Det känns väldigt som grekiska för mig även om det antagligen hade varit det bästa att brja med. O andra sidan ser jag inte vid detta läget som att jag kommer den "närmaste" tiden att skriva så pass avancerade program så att jag eg kommer att behöva full kapacitet av en upc.
Ni tycker väl vid detta läget att jag inte e så värst klok
Samtidigt måste jag berömma folket här på forumet. Det finns mycket kunskap och vilja att hjälpa till. Samt att man får svar väldigt snabbt.
Tack
Ni tycker väl vid detta läget att jag inte e så värst klok

Samtidigt måste jag berömma folket här på forumet. Det finns mycket kunskap och vilja att hjälpa till. Samt att man får svar väldigt snabbt.
Tack
- 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:
Inget ont i C. Problemet är bara att uC är så pass hårdvarunära att man måste ändå läsa datablad rätt noggrant för att kunna konstruera väl (välja rätt pinnar till rätt saker, välja rätt klockfrekvens osv osv.). När man har läst databladet noggrant så kan man programera ASM i princip... (nåja..). Men vill du inte göra detta så skippa ändå inte databladsläsningen då denna ger väldigt mycket igen. Trösten är att likheterna är större än skillnaderna så går fortare att läsa in nästa processor då mycket är det samma.
C = "strukturerad assembler", säger en del. 
Vill bara instämma med bengt-re, om man inte förstår grunderna
(d.v.s hårdvaran *och* assembler (eller igentligen "instruktionsuppsättningen",
det finns många finesser i assembler som "macros" t.ex som kanske inte
är helt nödvändiga för förståellsen av hur processorn arbetar)), så åker man
sannolikt på många helt onödiga fel.
> Grejen är att jag har pluggat en hel del C...
Om det *INTE* var C specifikt för microcontrollers, så har du nog inte alls
så mycket nytta av det som du kanske tror. Du kan naturligtsvis den
övergripande syntaxen i C (";" på slutet av rader o.s.v
), men inte
mycket om hur man *programmerar* en microcontroller (oavsett språk!).
> ...men i princip aldrig varit i kontakt med asm. Det känns väldigt
> som grekiska för mig...
Det beror mest på att du inte (än) förstår hur processorerna fungerar,
och då spelar det ingen som helst roll vilket språk du använder, det
kommer att gå åt skogen i alla fall...
Notera också att alla små kodexempel i databladet för hur man gör än
det ena och det andra är skrivna i assembler. Kan man inte läsa dessa
kod-exempel, så blir det lite svårare att förstå databladet.
Men vad är igentligen problemet ??
Det är väl bara att lära sig assembler !!??
Och läsa datablad om och om igen...

Vill bara instämma med bengt-re, om man inte förstår grunderna
(d.v.s hårdvaran *och* assembler (eller igentligen "instruktionsuppsättningen",
det finns många finesser i assembler som "macros" t.ex som kanske inte
är helt nödvändiga för förståellsen av hur processorn arbetar)), så åker man
sannolikt på många helt onödiga fel.
> Grejen är att jag har pluggat en hel del C...
Om det *INTE* var C specifikt för microcontrollers, så har du nog inte alls
så mycket nytta av det som du kanske tror. Du kan naturligtsvis den
övergripande syntaxen i C (";" på slutet av rader o.s.v

mycket om hur man *programmerar* en microcontroller (oavsett språk!).
> ...men i princip aldrig varit i kontakt med asm. Det känns väldigt
> som grekiska för mig...
Det beror mest på att du inte (än) förstår hur processorerna fungerar,
och då spelar det ingen som helst roll vilket språk du använder, det
kommer att gå åt skogen i alla fall...

Notera också att alla små kodexempel i databladet för hur man gör än
det ena och det andra är skrivna i assembler. Kan man inte läsa dessa
kod-exempel, så blir det lite svårare att förstå databladet.
Men vad är igentligen problemet ??
Det är väl bara att lära sig assembler !!??
Och läsa datablad om och om igen...

Precis som sodjan skriver; sätter man en insöad systemdatavetare på att skriva kod till en µC så blir det lätt suboptimalt skrivet, rentav rena skräpkoden.
Man måste ha förståelsen för asm för att kunna skriva bra program på dessa plattformar. Om du väl bara lärt dig asm så går det jättebra att hålla sig till C i de allra flesta fall.
Man måste ha förståelsen för asm för att kunna skriva bra program på dessa plattformar. Om du väl bara lärt dig asm så går det jättebra att hålla sig till C i de allra flesta fall.