Sida 1 av 7

C programmering till PIC

Postat: 16 september 2006, 20:14:44
av newbadboy
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

Postat: 16 september 2006, 20:17:52
av Stuggi
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

Postat: 16 september 2006, 21:37:08
av Icecap
Direktlänk

Jag använder den till mina PIC projekt med C och är ganska nöjd.

Postat: 16 september 2006, 22:46:31
av sodjan
> 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 !

Postat: 17 september 2006, 00:12:50
av newbadboy
Okey okey, det var Pic 16f627 som följde med programmeraren så det lär väl bli den jag provar med.

Är MikroC gratis??

Postat: 17 september 2006, 00:19:19
av sodjan
> Är MikroC gratis??

Konstig fråga, med tanke på informationen på länken du fick tidigare...
Vad var det som var oklart ?

Postat: 17 september 2006, 09:17:03
av Icecap
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.

Postat: 17 september 2006, 10:05:21
av newbadboy
Det är hårda bud på forumet :roll: Jg var lite trött o kollade inte länken på igår kväll, sorry.

Ska prova lite idag o se hur det går.

/Karoly

Postat: 17 september 2006, 22:21:37
av Henrik Kjellberg
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!

Postat: 18 september 2006, 15:48:04
av newbadboy
ok tack tack.....

Har börjat lite med mikroe och det vrekar vara rätt vettigt.

Postat: 18 september 2006, 21:50:08
av bengt-re
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.

Postat: 18 september 2006, 23:10:22
av newbadboy
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 :oops:

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

Postat: 18 september 2006, 23:15:04
av bengt-re
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.

Postat: 18 september 2006, 23:45:01
av sodjan
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... :-)

Postat: 19 september 2006, 00:39:13
av $tiff
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.