Sida 1 av 1

PicKit2, varför tänder sig DS4?

Postat: 8 november 2011, 21:45:13
av zood
Jag har precis köpt mig ett PicKit2 för att lära mig mer om microprocessorer och assembler och gått igenom dom första lektionerna som följde med på CDn.

Jag fick för mig att jag ville testa att tända två stycken lysdioder samtidigt istället för att bara ha en igång som i Hello World exemplet så jag använde mig utav det jag lärde mig i lektion nummer 3 med register.
Jag fick det att fungera till slut men jag förstår inte varför jag var tvungen att göra som jag gjorde.
Så här skrev jag:

Kod: Markera allt

      cblock 0x20	
Display  
		endc	

      org 0

Start:
     bsf     STATUS,RP0       ; select Register Page 1
     clrf     TRISC          ; make I/O all PORTC output
     bcf     STATUS,RP0       ; back to Register Page 0

   movlw 0x08
	movwf Display

	bsf Display,2 		
   bsf Display,0               
	
	movf Display,w		
	movwf PORTC	

        goto        $
        end
När man skriver såhär så tänder sig diod nummer 1 och 3. Men också nummer fyra. Varför gör den det?
För att få släckt diod nummer fyra så måste jag skriva till "bcf Display,3".
Varför är bit nummer 3 till från början?

MVH
Oscar

Re: PicKit2, varför tänder sig DS4?

Postat: 8 november 2011, 21:58:59
av Klas-Kenny
Du har ju
movlw 0x08
movwf Display

dvs. b'00001000' till Display.

Sätter du sedan Display, 0 och 2 blir ju resultatet b'00001101' och även utgången RC3 sätts till hög.

Re: PicKit2, varför tänder sig DS4?

Postat: 8 november 2011, 22:10:35
av sodjan
Det hade varit normalare att göra t.ex :

Kod: Markera allt

   clrf     Display

   bsf      Display,3       
   bsf      Display,2       
   bsf      Display,0               
   
   movf     Display, w      
   movwf    PORTC
Eller ("Display" är i princip onödigt):

Kod: Markera allt

   clrf     PORTC

   bsf      PORTC,3       
   bsf      PORTC,2       
   bsf      PORTC,0
Sen så är väl det du visade inte hela programmet.
Det saknas t.ex __CONFIG.

Re: PicKit2, varför tänder sig DS4?

Postat: 9 november 2011, 21:24:01
av zood
Tack Klas-Kenny och sodjan jag har fått pluggat på lite på binära tal så nu fattar jag vad jag gjorde för fel.
Sodjan jag skrev inte med ___config delen för att korta ner inlägget lite men den biten har jag koll på.

//Oscar

Re: PicKit2, varför tänder sig DS4?

Postat: 9 november 2011, 23:52:09
av sodjan
> ...men den biten har jag koll på.

Hur ska *vi* kunna veta det... :-)

Re: PicKit2, varför tänder sig DS4?

Postat: 10 november 2011, 08:48:48
av zood
Nej de va inte så lätt för er att veta förstås. Tänkte de skulle bli tydligare att ta ta ut dom aktuell delarna men de men de gjorde kanske bara saken värre :)
Ska ta med hela programmet nästa gång jag undrar nåt så de inte uppstår förvirring :tumupp: