Jag har tidigare bara jobbat med AVR och lite Motorola. Men nu när vi ska använda oss av PIC18 i kursen Mikrodatorer tänkte jag att det var lika bra att få igång lite hemma också som man kan sitta och "leka" med

Precis innan helgen fick jag mitt "startpaket" från Sodjan, ägnade sedan lördagen åt att löda och svära över att min kod inte fungerade direkt, men det gick bra tillslut.
Jag tänkte att man kanske skulle ta och skriva om allting här, från allra första början så andra kan lära av mina misstag
 eller kanske bara få lite hjälp att komma igång.
 eller kanske bara få lite hjälp att komma igång.Kommer posta kod här vartefter jag lär mig nya grejer.
Tänkte börja med lite bilder:
Först innehållet i paketet:

Större bild
Wisp628-kit:

Större bild
Jaha, det var det. Sen var det bara att värma upp lödkolven:

Större bild

Större bild
Lödningen gick rätt smärtfritt och ivrig som man är valde jag att ta ett befintligt nättagg istället för labbplattenätagget som följde med som kit, verkar dock väldigt smidigt med den så jag löder ihop den nån annan dag.
Uppkoppling:

Större bild
Nästa steg var att ladda ner XWisp2, i mitt fall installerade jag det under d:\Xwisp2 då jag inte gillar att lägga allt som behöver finnas i "path" i windowskatalogen. Gick istället in under kontrolpanelen/system/ och letade mig fram till "miljövariabler" och i "path" la jag till "d:\XWisp2", på detta sätt kan jag anropa det direkt från den katalog jag har koden i.
Då var det dags för det första programmet, jag valde det färdiga blink-a-led-programmet som går att hitta här:
http://www.voti.nl/blink/index.html
Det fungerade alldeles utmärkt. Den vänstra dioden på bilden ovan blinkade så fint
 
 Sen var det dags att skriva egen kod, det gick mindre bra. Kom efter några timmars svordomar fram till att kristallen svängde med blink-a-led men inte med min egen kod så felet måste ligga i konfigurationsbitarna, inge problem tänkte jag, bara att gå in under "configuration bits" i mplab... men icke sa nicke, det fungerade inte alls.
Fick sen veta att det gick att ställa in dessa från själva koden och vips så fungerade allting =)
Mitt första program:
Kod: Markera allt
;=========================================================
; 2005-09-10
; Fredrik Johansson
; Simple led-blinker
;=========================================================
	list p=18f452
	include "p18f452.inc"
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;     CONFIG settings (copied from P18F452.INC)
	config OSC = HS
	config OSCS = OFF
	config PWRT = ON
	config BOR = OFF
	config WDT = OFF
	config CCP2MUX = OFF
	config STVR = OFF
	config LVP = OFF
	config DEBUG = OFF
	config CP0 = OFF
	config CP1 = OFF
	config CP2 = OFF
	config CP3 = OFF
	config CPB = OFF
	config CPD = OFF
	config WRT0 = OFF
	config WRT1 = OFF
	config WRT2 = OFF
	config WRT3 = OFF
	config WRTB = OFF
	config WRTC = OFF
	config WRTD = OFF
	config EBTR0 = OFF
	config EBTR1 = OFF
	config EBTR2 = OFF
	config EBTR3 = OFF
	config EBTRB = OFF
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;    Variables. We put them in the access bank...
vars		UDATA_ACS
delayH		RES   1
delayL		RES   1
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
	
Boot	CODE	h'0000'
	goto	Start
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                   
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Main	CODE     
Start
	bcf		TRISC,RC0		; PORTC, PIN 0 as output
	bcf		PORTC,RC0		; initiate output value to 0
main
	call	Delay
	comf 	PORTC,F		; invert all signals on PORTC
	goto 	main
Delay
	movlw	d'255'			; initiate delay values
	movwf	delayL			
	movlw	d'255'
	movwf	delayH			
count
	decfsz	delayL
	goto 	count			; continue counting until delayL = 0
	movlw	d'255'
	movwf	delayL			; reset value of delayL
	decfsz	delayH			; decrease delayH one step and go back 
	goto	count			; to decrease delayL once again
	return					; we have counted delayL*delayH times
	end

Tack till Sodjan som hjälpte mig komma igång och visade på hur man kodar på ett "snyggt" sätt

Nästa grej blir att koda blink-programmet med en timer och interrupts.
 
				

