Sida 1 av 2

Tänkte börja lära mig pic!

Postat: 30 juni 2007, 21:12:47
av Bosen
Jag vill lära mig att programera en pic!
Ja, jag vet, det finns massa som har skrivit trådar om detta...MEN sökfunktionen på detta forum är MYCKET sämre än resten av forumet, så jag hittar inte vad jag söker :(

Jag har inte skaffat någon programmerare och sånt än utan jag tänkte att börja göra program som jag testar i datorn (simulator) först!

Jag tänkte börja att försöka lära mig assembler (mplab) och om det blir för krångligt så tänkte jag gå ner till C (Cc5x)

Som jag förstår det så har man inte sådär jättenytta av tidigare programmeringskunskaper, men jag behärskar Basic (qbasic, VB) och Pascal relativt bra. Jag tänkte mig att jag skulle lära mig lite mer programmeringsspråk, men det blev helt enkelt inte av... nu har man blivit äldre och har säkert svårare att lära sig...men det borde gå att få gammla hundar att lära sig sitta :)

När jag har fått till lite koder som funkar så tänkte jag handla programmerare och lite annat hos sodjan!

Nu till min första fråga i denhär tråden:

Exempelfiler till MPLAB, var finns det??? finns det någon som har någon bra adress??? Jag trodde att det skulle vara med iallafall något i installationen, men det va d inte :(

Jag kommer säkert på fler frågor.

Finns det någon kanske som har aldeles förlite att göra och kan dethär med pic-programmering som kanske skulle vilja hjälpa mig att komma igång över msn kanske *önsketänkande* :)

EDIT:
Jag kom på en fråga till:
Jag läser på en massa ställen att det är viktigt med en stabil spänning till pic:en när man labbar. Min fråga är då: Är ett ATX nätagg tillräckligt stabilt???

Postat: 30 juni 2007, 23:53:02
av sodjan
Hej !
Tänkte bara kommentera några utvalda delar... :-)

> utan jag tänkte att börja göra program som jag testar i datorn (simulator) först!

Du nämner MPLAB så jag antar att det är simulatorn där (MPSIM) som
du menar. Visst, det är ett utmärkt verktyg för att "singel-steppa" lite
kod där man för varje instruktion kan se precis hur t.ex de olika
flaggorna i STATUS registret påverkas o.s.v. Lär dig använda "watch"
funktionen o.s.v. så kommer du långt.

När det gäller "krångligt", så ligger det största jobbet i att förestå hur
själva PIC processorn jobbar i sig. Och ofta är det enklare att förstå
processorn om man kör assembler, än om man väljer någon av
"genvägarna". Om du däremot inte är så intresserad av hur processorn
fungerar så går det snabbare att "få ihop" ett program med de andra
verktygen, men du kommer sannolikt snabbt att köra in i väggen...

> Exempelfiler till MPLAB, var finns det???

Bra fråga !
Jag har en "plan" för att ha en del på www.jescab.se, men det har tyvärr
inte hunnit bli så mycket tid för det. Lite "mallar" för olika processor och
exempel på användning av olika funktioner i processorerna.

Sedan finns det ju en hel del exempelkod i databladen. Dock bara korta
kodsnuttar för olika funktioner, inga kompletta koder.

Olika "Application Notes" kan ha mer eller mindre kompletta koder.
Dessa finns hos Microchip. Oftast är dock dessa väldigt specifikt skrivna
för en viss funktion och inte så generella.

Jag kan även enkelt maila över lite fungerande kod som du kan labba med.

> Min fråga är då: Är ett ATX nätagg tillräckligt stabilt???

Kanske, men det är väldigt klumpigt. Du menar ett PC agg, eller hur ?

Själv använder jag alltid en liten 5V stabb som sitter monterad direkt
på labbplattan och som matas från en vanlig 9-12 V batterieliminator.
Fungerar utmärkt. Den ser ut som på bilden sist i inlägget och den säljs
av mig :vissla:

Till sist tror jag inte att MSN är speciellt lämpligt för att hjälpa till, det
passar bra för ungarna att sitta och tjafsa på. Forumet är faktiskt en
ganska perfekt miljö för att både leta efter gamla inlägg samt att
få hjälp med nya problem som duker upp.

Bild

Postat: 1 juli 2007, 01:31:34
av v-g
Kolla tex denna tråd för inspiration och ungefär där jag började.

Postat: 1 juli 2007, 02:36:36
av nole
Ang att sökfuntionen i forumet är som den är så kan du söka på google med att ange

"site:elektronikforumet.com +sökterm"

Utan citationstecken då

Postat: 1 juli 2007, 07:51:59
av Bosen
sodjan:
Själv använder jag alltid en liten 5V stabb som sitter monterad direkt
på labbplattan och som matas från en vanlig 9-12 V batterieliminator.
Fungerar utmärkt. Den ser ut som på bilden sist i inlägget och den säljs
av mig
Det verkar som om jag får knåpa ihop ett mail till dig om lite saker jag behöver snart :)


För er som är i samma sits som jag och försöker hitta något att börja med, så hittade jag en bra sida med grunder i assembler: http://www.mstracey.btinternet.co.uk/pi ... icmain.htm

Postat: 1 juli 2007, 08:11:32
av Icecap
Synd bara att den använder PIC16x84 som i dagens läge kör med ångdrift och fattas extremt mycket av vad som finns tillgängligt i PIC-processorer i dagens läge. Den är till och med avsevärd dyrare än många andra och bättre....

Postat: 1 juli 2007, 08:15:31
av mrOh
Jag har tittat lite på samma guide. Problemet med den och nästan alla andra guider är att de är baserade på en gammal krets som vad jag förstår är i stort sett ersatt av 16F628*.
Men om man har 16F628 databladet så är det inte så svårt att hänga med ändå.
Men sen är det vissa saker som han inte använder som tex BANKSEL, vilket är ett enklare sätt att växla mellan "bankerna?". Speciellt eftersom 16F628 har dubbelt så många som 16F84.

Jag tycker att http://www.amqrp.org/elmer160/lessons/index.html är bra.

Men jag kan inte säga att jag har så bra koll på PICar. Men ni som har, rätta mig gärna om jag har fel.

Postat: 1 juli 2007, 08:16:13
av Bosen
Icecap> Du menar att jag inte har någon nytta av denna tutoriotal?
Jag måste väl kunna använde det mesta i nyare PIC:ar också???

Sidan va senast uppdaterad 2003 så det är nog därför den är lite gammalmodig :)

Postat: 1 juli 2007, 08:25:59
av Icecap
Att den kan förklara grunderna är nog troligt men då PIC16F84 är en mycket primitiv processor som saknar mycket av vad moderna processorer innehåller av extra godsaker (A/D, Timers osv.) kommer dessa att förbigås i tystnad.

Om man kollar på Microchips hemsida ser man att en PIC16F84A kostar $2.71 och en PIC16F628A kostar $1.29, detta borde vara en stark indikator på att det är dags att spola den.

Men OK, då PIC-serien i mångt och mycket liknar varandra vad angår programmeringssätt och dylikt kan en tutorial till PIC16F84A nog ge starthjälp men det är lite som att lära sig köra bil i en Citroën 2CV och sedan, när man ska köra upp byta till Ferrari, principen är ju lika men det skiljer en aning i tillbehör och HUR den utför uppgiften.... men det rör sig fortfarande om ratt, pedaler och växelspak.

Postat: 1 juli 2007, 08:31:44
av mrOh
http://www.isk.kth.se/kursinfo/6b4059/kursprogvt07.htm
Där finns ganska mycket bra info och hjälp. På svenska och använder 16F628 dessutom.

Postat: 1 juli 2007, 10:39:23
av Bosen
mrOh>Jo, men dom använder sig av C som programmerinsspråk.
Jag har sparat all info på den sidan om jag nu får för mig att jag ska testa C istället, men just nu så försöker jag mig på att sätta mig in i assembler.


Jag satt och pillade lite med mplabs för en stund sedan och jag hittade faktiskt lite exempelfiler. Men jag tycker programmet är väldigt komplext. Rätta mig om jag har fel, men jag skulle gäran vilja veta om det finns några alternativ??? Gärna dos-baserat!
med tanke på det vi har pratat om om mindre eller mer morderna PIC-ar så är väl sannoliken inte så stor att någon sitter och knåpar ihop ett dos-prog nu, men man vet ju aldrig.

Mplab känns lite som VisualStudio: en massa menyer och sake som inte skulle behövas för det mesta gör man ändå i editorn....
Men somsagt, det är inte jag som kan dethär... det är ni :)
Lång text men igentligen en väldit enkel fråga:
Finns det något alternativ till MPLAB när det gäller assembler??

Postat: 1 juli 2007, 11:01:04
av v-g
Assembler är vägen du ska gå! Glöm C kan man inte grunderna är det svårt att börja på överkursen. För små testprojekt är ASM mycket bättre.

Härhar du lite info som iaf räckte för att jag skulle få igång MPLAB.

Strunta i det som är oväsentligt innan du "behöver" det. Ska man lära sig allt innan man gör något så tror jag snabbt man går i väggen. Bättre då att börja med ett väldigt enkelt exempel och sen bygga på.

Glöm inte att LED som tänds är en ypperlig debugkälla.

Re: Tänkte börja lära mig pic!

Postat: 1 juli 2007, 13:20:47
av bos
> Exempelfiler till MPLAB, var finns det???

Google har ett par miljoner, eller så. Du kanske kan börja här: http://www.mstracey.btinternet.co.uk/pi ... icmain.htm

> Min fråga är då: Är ett ATX nätagg tillräckligt stabilt?

Ett 9v-batteri duger gott och väl. Att använda ATX-kragg till en PIC är som att koppla en tågmotor till en bil. Bilen kommer säkert få hög tuff-faktor, men till ingen större praktisk nytta.

Svar ja, ett ATX-kragg är tillräckligt stabilt men det är overkill.

Postat: 1 juli 2007, 13:23:42
av bos
Bosen skrev:Du menar att jag inte har någon nytta av denna tutoriotal?
Den tutorialen är nyttig, om du vill läsa dig till olika saker. Om du däremot är ute efter en sida som du vid sidan om kan bygga själv och läsa lite exempel, så är den nog inte så värst bra. Jag förespråkar dessutom inte den typen av inlärning, för oftast blir det bara att man efterapar utan att egentligen förstå saker och ting.

Jag lärde mig PICs för några månader sen. Jag började på sidan i fråga, sen skaffade jag boken "The quintessential PIC microcontroller" av Sid Katzen, och den boken är mer än guld värd.

Postat: 1 juli 2007, 13:37:24
av sodjan
> Lång text men igentligen en väldit enkel fråga:
> Finns det något alternativ till MPLAB när det gäller assembler??

Nej.

För mindre tester så är det väldigt få delar av MPALB som faktiskt behövs.

Jag kan lägga upp ett projekt, fixa kod och bygga en HEX fil med i princip följande menyer :

Project -> New
(Project -> Build Options (för att stänga av "case sensitivity") )
Configure -> Select Device

Sen är det bara att lägga till sin ASM fil i det lilla projekt-fönstret,
redigera koden och klicka på "Make" eller "Build All" knappen. That's it.

Nästa gång man går in är det ändå enklare :

File -> Recent Workspaces
så är det klart att fortsätta där man slutade gången innan.

Vill man köra MPSIM tillkommer det lite, t.ex :

Debugger -> Select Tool -> MPLAB SIM
View -> Watch
Debugger -> StopWatch
samt någre kanppar till i knappraden.

När det gäller tutorials, så stämmer det att väldigt många bygger på
den gamla F84(A) processorn. Men om har datablad till både F84AA
*och* en modernare processor (t.ex 16F628A, 16F688 eller 16F88)
tillgängligt, så ser man ju var och när det skiljer...

Slutligen skulle jag rekomendera att du startar direkt med att skriva
koden i "relocatable mode" istället för den äldre "absolute mode". Det
kan se lite mer komplext ut till enbörjan, men underlättar en hel del
lite längre fram i programmeringen. Se t.ex :
http://www.jescab.se/Rellocmode.html
Det finns i dag ingen anledning att hålla kvar vid det gammla
"absolute mode" formatet. Det ända eventuella problemet är att väldigt
mycket kod på nätet är skrivet i det gamla formatet. Man kan göra på två
sätt :

1. Om man bara ska använda koden som den är med små justeringar så kan man behålla den i absolute mode.
2. Om man räknar med större ändringar/kompletteringen så kan man göra de ändringar som behövs för att konvertera den till relocatable mode.

Til sist det allra viktigaste, SÄTT IGÅNG !! :-) :-)
Resten löser sig under resans gång... :-)