Vilken PIC ska jag börja med?
Vilken PIC ska jag börja med?
Hej, tänkte lära mig Pic-programmering och köpte för ett tag sedan ett pic2 kit. Har programmerat en hel del i assembler i skolan (inne på tredje kursen nu) men det känns ändå som att den medföljande picen (16f690) är onödigt komplicerad för mina ändamål nu i början (att komma igång med picprogrammering). Skulle det vara bättre att börja med en simplare pic eller är det bättre att lära sig denna lite mer avancerade från början?
-
- Inlägg: 349
- Blev medlem: 24 oktober 2008, 19:40:50
- Ort: Lomma
Re: Vilken PIC ska jag börja med?
Jag hade startat med den du har. Det är inte så stor skillnad (eller ingen alls) på hur man åstadkommer enklare saker på den jämfört med en enklare/mindre. Möjligen då att det finns lite fler config-switchar att hålla reda på när man initierar den. När du sedan vidareutvecklar dina projekt så finns det lite resurser att ta av utan att byta krets. Dessutom har du ju den redan.
Re: Vilken PIC ska jag börja med?
Tycker samma. Börja med den du. Dessutom är de lektioner som kommer med avsedda för den.
Re: Vilken PIC ska jag börja med?
Okej får väl göra det då
En fråga till, jag tänkte programmera i C när jag börjar göra egna projekt, men tycker ni jag ska börja med assembler? Har programmerat en Freescale 68HC12 i skolan så kan ju grunderna i assembler redan.

-
- Inlägg: 349
- Blev medlem: 24 oktober 2008, 19:40:50
- Ort: Lomma
Re: Vilken PIC ska jag börja med?
Själv kör jag med C. Men det finns många här på forumet som tycker att man ska starta med assembler för att lära sig processorns uppbyggnad.
Re: Vilken PIC ska jag börja med?
Kan du assembler och har grundkunskaperna om processorn så finns det väl ingen särskild anledning att fortsätta med det. C underlättar ju en hel del, så för mig hade valet varit självklart.
Själv höll jag på med assembler väldigt länge innan jag "tog steget över" till C, dels för att jag inte kunde programmera i C, dels för att jag behövde skaffa en annan programmeringsmiljö, dels för att jag tyckte om att programmera i assembler. Men nu när jag hållit på med C ett tag så skulle jag aldrig byta tillbaka. (jag har bara hållit på med AVR - aldrig PIC men jag antar att det inte har någon större betydelse i det här sammanhanget)
Själv höll jag på med assembler väldigt länge innan jag "tog steget över" till C, dels för att jag inte kunde programmera i C, dels för att jag behövde skaffa en annan programmeringsmiljö, dels för att jag tyckte om att programmera i assembler. Men nu när jag hållit på med C ett tag så skulle jag aldrig byta tillbaka. (jag har bara hållit på med AVR - aldrig PIC men jag antar att det inte har någon större betydelse i det här sammanhanget)
Re: Vilken PIC ska jag börja med?
Kör åtminstone lektionerna i assembler för att lära dig hur procssorn fungerar. Själv skriver jag i båda, litet beroende på processorns och programmets storlek.
Re: Vilken PIC ska jag börja med?
> Har programmerat en hel del i assembler i skolan...
Ja, det är ju bra att veta vad assembler handlar om generellt, men notera
att syntax, kommandon och mycket annat kan skilja väldigt mycket
mellan olika processorfamiljer, speciellt om du börjar jämföra helt
olika leverantörer som i ditt fall. En hel del allmänna saker kommer att
vara lika men detaljerna kommer säker att skilja ganska mycket.
> men det känns ändå som att den medföljande picen (16f690) är onödigt komplicerad
Det är en av de enklare PIC processorerna och är precis lagom att börja med.
Att den dessutom medföljer och att det finns färdiga programexempel ("lessons")
anpassade för just den gör det ju lite dumt att välja något annat.
> En fråga till, jag tänkte programmera i C när jag börjar göra egna projekt, men
> tycker ni jag ska börja med assembler?
Beror lite på vad ditt syfte är. Om du är intresserad av hur denna typ av processorer
faktiskt fungerar "under the hood", så är det inget som helst fel att börja med assembler.
Tvärtom är det helt rätt. Speciellt som de medföljande exemplen (som fungerar bra att
ha som grund för egna experiment) är i assembler.
> Har programmerat en Freescale 68HC12 i skolan så kan ju grunderna i assembler redan.
Det låter som att du tror att det är en fördel, men beroende på hur insnöad du är
på just deras variant av assembler så kan det snarare vara ett problem. Det är
helt upp till dig och hur myckt du har förstått av vad programmering av mikrokontrollers
*igentligen* handlar om (d.v.s bortanför den specifika assembler implementeringen).
> (jag har bara hållit på med AVR - aldrig PIC men jag antar att det inte har någon
> större betydelse i det här sammanhanget)
Nja, en viss betydelse har det väl. Det finns skillnader mellan AVR och PIC16 som gör
att AVR passar lite bättre för C-kompilatorer än vad PIC16 gör, sammtidigt är PIC16
arkitekturen på vissa sätt enklare att programmera i assembler än AVR.
Ja, det är ju bra att veta vad assembler handlar om generellt, men notera
att syntax, kommandon och mycket annat kan skilja väldigt mycket
mellan olika processorfamiljer, speciellt om du börjar jämföra helt
olika leverantörer som i ditt fall. En hel del allmänna saker kommer att
vara lika men detaljerna kommer säker att skilja ganska mycket.
> men det känns ändå som att den medföljande picen (16f690) är onödigt komplicerad
Det är en av de enklare PIC processorerna och är precis lagom att börja med.
Att den dessutom medföljer och att det finns färdiga programexempel ("lessons")
anpassade för just den gör det ju lite dumt att välja något annat.
> En fråga till, jag tänkte programmera i C när jag börjar göra egna projekt, men
> tycker ni jag ska börja med assembler?
Beror lite på vad ditt syfte är. Om du är intresserad av hur denna typ av processorer
faktiskt fungerar "under the hood", så är det inget som helst fel att börja med assembler.
Tvärtom är det helt rätt. Speciellt som de medföljande exemplen (som fungerar bra att
ha som grund för egna experiment) är i assembler.
> Har programmerat en Freescale 68HC12 i skolan så kan ju grunderna i assembler redan.
Det låter som att du tror att det är en fördel, men beroende på hur insnöad du är
på just deras variant av assembler så kan det snarare vara ett problem. Det är
helt upp till dig och hur myckt du har förstått av vad programmering av mikrokontrollers
*igentligen* handlar om (d.v.s bortanför den specifika assembler implementeringen).
> (jag har bara hållit på med AVR - aldrig PIC men jag antar att det inte har någon
> större betydelse i det här sammanhanget)
Nja, en viss betydelse har det väl. Det finns skillnader mellan AVR och PIC16 som gör
att AVR passar lite bättre för C-kompilatorer än vad PIC16 gör, sammtidigt är PIC16
arkitekturen på vissa sätt enklare att programmera i assembler än AVR.
Re: Vilken PIC ska jag börja med?
Jag brukar rekommendera ASM för att man ska "känna på" hårdvaran och vad man kan begära och förvänta, när man sedan har fattat hur kretsen fungerar, vilka resurser man har osv ser jag det som mer produktivt att använda C.
Re: Vilken PIC ska jag börja med?
Börja med lektionerna som följer med (asm) lär dig dem (alltså, du ska förstå hur dem är uppbyggda och ganska bra varför.) Sen kan du ta C om du vill, testa då gärna att porta lektionerna till C 

Re: Vilken PIC ska jag börja med?
Vad som är "bäst" beror lite på vad ditt mål är. Asm är som sagt väldigt hårdvarunära dvs lär du dig för en pic 16F så skiljer sig detta mot en 18F, 24/33F eller 32F som är samma tillverkare. Om du går över till andra tillverkare kan det skilja sig ännumer.
Om du däremot gör över till C får du ett språk som fungerar på väldigt många processorer. Att ställa in register och förstå databladet är inget man kommer från även om man pysslar med C vilket många verkar tro. I början kommer du antagligen skriva "enkel kod" där man i stort sätt skriver all kod i en enda fil. Men antagligen börjar du få en känsla på hur man delar upp koden i HAL (hårdvarulagaer) som är processor specifik och kan därefter skriva dina applikationer som faktiskt utför något i ett applikationslager. Då blir det väldigt mycket enklare att t.ex uppgradera till en snabbare processorfamlj. Du kommer även ha stor nytta av detta om du skulle börja jobba med hårdvarunära programmering. Men om du bara vill latcha runt lite och sen byta hobby till något annat så spelar det egentligen ingen större roll vad du väljer för språk.
Om du däremot gör över till C får du ett språk som fungerar på väldigt många processorer. Att ställa in register och förstå databladet är inget man kommer från även om man pysslar med C vilket många verkar tro. I början kommer du antagligen skriva "enkel kod" där man i stort sätt skriver all kod i en enda fil. Men antagligen börjar du få en känsla på hur man delar upp koden i HAL (hårdvarulagaer) som är processor specifik och kan därefter skriva dina applikationer som faktiskt utför något i ett applikationslager. Då blir det väldigt mycket enklare att t.ex uppgradera till en snabbare processorfamlj. Du kommer även ha stor nytta av detta om du skulle börja jobba med hårdvarunära programmering. Men om du bara vill latcha runt lite och sen byta hobby till något annat så spelar det egentligen ingen större roll vad du väljer för språk.