Sida 10 av 11
Re: nån som e haj på PIC o assembler
Postat: 16 januari 2012, 01:11:42
av labmaster
Hej alla aktiva i denna tråd!
Alla som vill engagera sig i denna tråd bör tänka på att de som hittills visat intresse för att lära sig programmera C på PIC är
nybörjare med betoning på ny. Det brukar normalt betyda att man inte klarar att ta till sig för mycket input i form av tutorials, FAQ:n och allehanda tips om länkar där man hittar värdefull information för kunskapsprocessen.
Jag har fått några frågor via PM och mot bakgrund av dessa blir min slutsats att:
- den enda tutorial som just nu kan vara är värdefull är hur man kommer igång med utvecklingsplattformen så att man kan köra editor, compiler, linker och debugger samt programmet för nedladdning av koden till CPU:n;
- eventuell tutorials med exempel på C-program är för tidigt att jobba med enär man först måste lära sig att förstå innehållet/funktionen i ett program kopplat till hårdvaran.
Min övertygelse är att man som nybörjare lär sig bättre om man själv lyckas skriva ett program som "hello world" med stöd av databladet. Fördelen med detta är att man på köpet lär sig att läsa och förstå databladet samtidigt som man lär sig att skriva C-program. Det blir två flugor på smällen så att säga.
Till Säter och Teljemo:
Steg 1) Gör färdigt installationen av utvecklingsplattformen och läs på hur man editerar, compilerar och länkar program samt laddar programkod till CPU:n. Det även bra om ni lär er hur man startar debuggern;
Steg 2) När punkt 1 är färdig skall ni plocka fram sidan 6 och 13 i databladet. På sidan 13 finns processorns (16F690) blockdiagram i figur 1-5. Första steget är att bekanta sig lite med blockdiagrammet i största allmänhet. Just nu är det inte så viktigt att förstå alla detaljer men det är viktigt att förstå kopplingen mellan PORTA, PORTB samt PORTC och deras respektive ben på kretsen. För att få kläm på detta tar man fram sidan 6 och studerar "pin-out". Skriv gärna in numret på
respektive pinne i blockdiagrammet så blir det lätt att minnas kopplingen mellan port-bit och pinne på kapseln;
Steg 3) Läs hela kapitel 4.0 som startar på sidan 59 i databladet och studera speciellt hur portarnas kontrollregister (TRISA, TRISB, TRISC) och dataregister (PORTA, PORTB, PORTC) fungerar. Det är även viktigt att ni förstår vad registren ANSEL och ANSELH är till för.
Obs: 4.2.3 INTERRUPT-ON-CHANGE behöver ni inte läsa i nuläget. Hoppa även över exempel 4-1 på sidan 59 eftersom detta är skrivet i assembler.
När Steg 1 till 3 är genomförd meddelar ni mig så får ni er första övningsuppgift av mig.

Ikväll uppmärksammar vi slutligen
Batman lite extra för att han hjälpte till att rätta programmallen så att den fungerar med HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.83
Re: nån som e haj på PIC o assembler
Postat: 16 januari 2012, 18:09:46
av teljemo
http://ww1.microchip.com/downloads/en/D ... 51556a.pdf
sidan 8 = bild på demo board.. =)
känns som att den kan vara bra när jag försöker förstå var knapparna ska sitta..
äh.. här e bilden direkt oxå... men hela dokumentet på länken.. =)

Re: nån som e haj på PIC o assembler
Postat: 16 januari 2012, 18:15:30
av sodjan
Alltså...
Det där kortet är utmärkt för att testköra de befintliga exempelkoderna
eller för att testa egna varianter av dom. Men för att bygga upp någon
egen koppling av lite större format, så är det inte mycket plats där.
Absolut enklast är att skaffa en labbplatta, enligt länkar tidigare i tråden.
Nu så vet jag inte hur du tänker koppla, men visst, sätt knapparna
på kortet om de passar där och koppla in dom där du vill ha dom.
Ytan med alla hål har inga förbindningar så du får koppla allt
med trådar på undersidan.
Re: nån som e haj på PIC o assembler
Postat: 16 januari 2012, 18:45:13
av teljemo
labmaster skrev på förra sidan
http://elektronikforumet.com/forum/view ... 16#p790016 hur ja skulle koppla.. =)
Antar att v+ är strömmen dom kommer från usb'n.. så jag inte behöver nån extern strö källa?
så ska jag bara se om jag har nåt motstånd som kan passa..

Re: nån som e haj på PIC o assembler
Postat: 16 januari 2012, 18:47:03
av sodjan
Aha, OK. Ja koppla på bara.
Vdd och Gnd på bilden kommer från USB, ja.
Så det betyder att du måste ha den inkopplad
under testkörning.
Re: nån som e haj på PIC o assembler
Postat: 16 januari 2012, 18:50:22
av labmaster
Ja den där bilden på kortet är bra att ha men först och främst skall du läsa in databladet sidorna 6, 11 och 59 - 80. När detta är klart och du förstår hur de olika portarna fungerar och till vilken pinne de skall anslutas så blir montering av switcharna den lättaste uppgiften.
Men jobba först i tur och ordning med punkterna 1 - 3.
Re: nån som e haj på PIC o assembler
Postat: 16 januari 2012, 21:20:33
av teljemo
satt o funderade lite här över en film..

varför behöver man motstånd till knapparna.. och hur vet man vilka man behöver..
jo jag vet att du visat vilka motstånd de ska vara labmaster.. men känns inte bra om jag inte vet varför...
hade inte du sagt nåt hade jag bara lödit dit knapparna utan några motstånd..
de e väll ca5v från usb.. är det för mkt för pic:en att ta emot?
Re: nån som e haj på PIC o assembler
Postat: 16 januari 2012, 21:50:35
av sodjan
Om jag minns rätt så var det två motstånd varav det ena är det viktiga.
Alltså, en tryckknapp har bara en enkel slutande kontakt.
Normalt kopplar man knappen mot jord, det betyder att det behövs
något annat för att fra pinnen mot "hög" och det är det som pull-up
motståndet gör. 10 kohm är ett vanligt värde. Detta är det viktiga
motståndet. Notera också att det för många pinnar på processorn
finns ett inbyggt "weak pullup" som kan kopplas in via ett register. Sök
på WPU i databladet. Det kan i många fall ersätta ett externt motstånd.
Sedan tror jag att det även satt ett motstånd direkt in på pinnen. Det gör
i och för sig ingen skada, men det är i de allra flesta fall inte nödvändigt
heller. Du kan under ditt labbande absolut utesluta det.
Så det betyder att om du använder en pinne med WPU, och har WPU
påslaget för den pinnen, så räcker det med enbart tryckknappen.
Vill du använda valfri pinne oavsett WPU eller inte, så behöver du ett
extern 10 kohm pullup motstånd.
> de e väll ca5v från usb.. är det för mkt för pic:en att ta emot?
Nejdå, inte alls. Allting (PIC, knappar o.s.v) kommer att jobba med samma
5V matning, så det är inga problem.
Re: nån som e haj på PIC o assembler
Postat: 16 januari 2012, 22:02:19
av teljemo
detta är va ja har hemma..

går det att pussla till nåt med dom tror ni.. ;P

Re: nån som e haj på PIC o assembler
Postat: 16 januari 2012, 22:13:58
av sodjan
Tja, värderna ser du ju själv enklast själv.
Eller kontrollmät om du är osäker.
Re: nån som e haj på PIC o assembler
Postat: 17 januari 2012, 00:05:33
av labmaster
Hej Teljemo!
Jag ser inte exakt vilka färger det är eftersom min bildskärm inte är perfekt kalibrerad så jag kan ha fel men de där motstånden ser inte ut att räcka för att få ihop 10kOhm (10 000 Ohm) på ett bra sätt.
Om det fortfarande finns någon i din närhet som lagar TV-apparater så kan du säkert få köpa ett par 10k motstånd och ett par 1k där. Annars har Electrokit och det tar inte mer än ett par dagar att få hem dem på posten. Precis som Sodjan skriver behövs egentligen inte 1k motstånden men det skadar heller inte att ha dem där.
Du frågar varför jag valt just 10kOhm och det har jag gjort baserat på min erfarenhet. Vill du räkna så går det ju naturligtvis bra. Motståndet har till uppgift att begränsa strömmen när du sluter switchen vars ena sida är kopplat till GND. Ett riktvärde för strömmen genom switchen är 2mA.
Kontrollfråga till dig: Hur lyder formeln för att räkna ut R om du har en spänning på 5V givet en ström på 2 mA?
By the way, precis som Sodjan skriver finns det så kallade internal weak pull-up som man mjukvarumässigt kan sätta i ett register. Jag vill dock att du skall få lära dig att använda externa pull-up motstånd. Denna metod är nämligen så pass generell att den går att använda till en massa olika fabrikat av mikroprocessorer. Därför vill jag inte att du skall skippa dem.
Nästa kontrollfråga till dig: Du har nu förhoppningsvis läst databladet enligt min tidigare instruktion. Jag föreslog förut att du skall sätta switcharna på PORTB bitarna RB4 och RB5. Vad har dessa två bitar för pin-nummer på µC:ns ben?
Obs: Svara på ovanstående kontrollfrågor i ett PM så får flera chansen att svara utan facit ifall det är fler som vill göra samma resa som du.
Re: nån som e haj på PIC o assembler
Postat: 17 januari 2012, 11:32:39
av jesse
Det går givetvis bra med allt mellan 2k och 100k.... men helst inom 5k - 30k
Din bild var svårläst... försökte förstora lite och gissade. Lättast är att mäta på dem.
DSC_01411.jpg
Sodjan har ju redan förklarat varför dom måste finnas där. Men igen:
En digital ingång ska bara ha
antingen 0 volt in
eller +5 volt in. inget annat.
En icke-ansluten ingång är inte detsamma som 0 volt (även om en multimenter visar det när du testar).
En knapp som sluter till GND ger 0 volt. Men när du inte håller ner knappen blir ju ingången
oansluten = fel!
Ett motstånd till +5V löser det problemet. Den oanslutna ingången kommer nu att få 5 volt och allt är OK. När du sluter knappen kommer den att dra ner ingången till 0 volt och allt är OK. Då kommer spänningen över motståndet att bli 5 volt och det kommer att gå en ström. Storleken på motståndet ger strömmen. För litet motstånd = onödigt hög ström.
För stort motstånd = ger för dålig kontakt till +5V så att störningar och annat kan påverka ingången. Detta sker i praktiken sällan om motståndet är under 1 Mega-ohm.
Re: nån som e haj på PIC o assembler
Postat: 21 januari 2012, 19:22:21
av teljemo
funderar på knappen jag skaffat...
den lilla rackaren med 4 ben...
bör man löda i några speciella ben eller har det ingen betydelse?
en annan grej.. när jag försökte mäta en resistor nu så hoppar resultatet väldigt mkt...
kanske e kass multimeter...
Re: nån som e haj på PIC o assembler
Postat: 21 januari 2012, 21:32:42
av Gustav180
Resistorvärden
Längst till vänster 150 ohm, i mitten 610 ohm och till höger 820 ohm. Det finns inget värde 420 ohm med tre värderingar, det enda som kan passa är 120 och 820. När det gäller 4 värderingar, så finns toleransringar röd = 2%, brun = 1% och grön = 0,5%. Men det finns kombinationer bland dessa som kan läsas åt fel håll. Oftast har toleransringen ett lite större avstånd till värderingarna.
Re: nån som e haj på PIC o assembler
Postat: 22 januari 2012, 00:47:24
av labmaster
I ditt schema som du PM:ade till mig har du ritat in brytfunktionen du skall således jämföra detta ditt schema med databladet för switchen och löda som du har ritat på schemat.