PicKit2, varför tänder sig DS4?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
zood
Inlägg: 9
Blev medlem: 8 november 2011, 21:19:51

PicKit2, varför tänder sig DS4?

Inlägg 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
Användarvisningsbild
Klas-Kenny
Inlägg: 11843
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

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

Inlägg 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.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

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

Inlägg 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.
zood
Inlägg: 9
Blev medlem: 8 november 2011, 21:19:51

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

Inlägg 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
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

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

Inlägg av sodjan »

> ...men den biten har jag koll på.

Hur ska *vi* kunna veta det... :-)
zood
Inlägg: 9
Blev medlem: 8 november 2011, 21:19:51

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

Inlägg 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:
Skriv svar