Sida 2 av 2

Postat: 1 juli 2007, 15:15:21
av Bosen
>Til sist det allra viktigaste, SÄTT IGÅNG !!

ja, jag ska sätta igång :)

Men tiden föra att sitta och exprimetera är väldigt knapp för en skiftarbetande 2barnsfar :)
Tiden finns helt klart... men den är upp delad i små portioner vid en massa tillfällen istället för en stor portion... men som tur é så kan man iallafall läsa detta forum när man sitter på jobbet, och då lär man sig ju en hel del :)

>sen skaffade jag boken "The quintessential PIC microcontroller" av Sid Katzen, och den boken är mer än guld värd.

Kanske något man borde leta efter då...

>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.

Det finns alltid nytta med en stor motor i bilen... det är därför min motor i cadillacen är på 8,2l (500cui) :)

Postat: 1 juli 2007, 15:23:28
av sodjan
Hm, "Cadillac DeVille Cab 1964" ??

Postat: 1 juli 2007, 16:13:21
av Bosen
>Hm, "Cadillac DeVille Cab 1964" ??

JAPP, givetvis... finns det nåt annat??? :)
du kanske syftar på motorn... nja... den é inte från -64, närmare bestämt 1975...

Bilen finns här om någon nu är nyfniken: http://www.garaget.org/?car=8147

EDIT:
Om man nu ska va petig, så är det inte helt säkert att det är en deville... vissa upgifter menar på att det inte fanns någon deville cab 1964, och isåfall är det en "series 62 cab 1964".

Postat: 4 juli 2007, 13:52:57
av Bosen
Jag kom fram till att jag behövde sätta mig in i lite mer hur registren fungerar. Då hittade jag en sida som förklarar väldigt bra... Tyvvär är koden som så många gånger förr skriven i absolute mode... men jag kände att jag fick lite mer kött på benen iallafall. Sidan finns här:http://www.hobbyprojects.com/pic_tutori ... rial2.html

Postat: 4 juli 2007, 14:26:24
av bos
Bosen skrev:Tyvvär är koden som så många gånger förr skriven i absolute mode...
Registren är alltid absoluta, hur man än vänder och vrider på det. Koden "movwf 0x06" är inte mindre absolut än "movwf PORTB".

Jag tror du menar "utan equates".

Postat: 4 juli 2007, 14:49:07
av sodjan
Korrekt.

Hanteringen av SFR (Special Funktion Registers) skiljer i princip ingenting
mellan abs- och reloc-mode.

De stora skillnaderna ligger i hur man allokerar/definierar sina variabler
i GPR (General Purpose Registers eller bara "RAM", med DATA_* istället
för EQU), samt hur man anger olika "code segments" (d.v.s med CODE
istället för ORG).

Men den allra största delen, säg 95-98 %, av en normal kod är precis likadan.
Dock, de 2-5 % som skiljer gör stor skillnad !

Eftersom det är så pass lite av koden som skiljer, så är det ofta ganska
enkelt att modifiera koden från abs -> reloc mode, om man vill det.

Och man använder symbolerna från INC filen, så klart. Ibland ser man
att man själv har definierat (t.ex) PORTA med EQU direkt i koden
istället för att göra #INCLUDE på INC filen, det är *aldrig* rätt att göra så...

Det är bara så synd att när man ändå tar sig tid att skriva
en tutorial som den som det länkades till, så gör man det så
jäkla fel alltihop...

Postat: 4 juli 2007, 16:12:35
av Bosen
>Registren är alltid absoluta, hur man än vänder och vrider på det. Koden "movwf 0x06" är inte mindre absolut än "movwf PORTB".

Jo, det är jag med på... Registrets innehåll och adresser börjar jag få kläm på :)
Det jag menade med absolute mode är att alla kodexempel längre fram i turtorialen är i absolute mode.... men det kanske inte spelar så mycket roll igentligen.

Postat: 4 juli 2007, 16:29:40
av sodjan
Den *stora* missen i den turorialen, är att de *inte*
använder INC filen. Men det där kan du ju nu, så
du kan alltid "se förbi" dom missarna... :-)

Postat: 4 juli 2007, 17:19:17
av v-g
Det är bra att använda sig av konstanter. Tex om man kopplar en vit led till sin PIC kan man göra som följer

Kod: Markera allt

   #DEFINE VIT_LED PORTB,1

Väldigt smidigt att ändra om man vill flytta den till PORTC eller en annan pinne.

Sen om man vill slå på den (förutsatt att diodens plussida sitter på PICens utgångspinne) skriver man såhär:

Kod: Markera allt

   BSF VIT_LED
Man slipper NÄSTAN kommentera om man gör så :wink: