PICKit2 lektion nr 1

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
eAk
Inlägg: 74
Blev medlem: 10 september 2008, 22:50:23
Ort: Kungälv

Inlägg av eAk »

du kan löda på en ström kontakt eller stiftlist uppe i vänstra hörnet.
där du kan koppla på egen ström om du vill.
kopplar du ur din pickit och kopplar på 5volt där istället funkar programmet som det ska.
skulle gissa att det har något med fuse bitarna att göra. men orkar inte tareda på vad det är som cepar.
snart har jag skrivit klart kod för att växla dioderna.
Plutonium
Inlägg: 60
Blev medlem: 24 februari 2005, 00:04:14
Ort: Essunga station
Kontakt:

Inlägg av Plutonium »

Nu är jag med :). Men generellt sätt så kan man väl nyttja den befintliga 5volt källan från programmeraren? Och ändå köra det skript som du har skrivit?
eAk
Inlägg: 74
Blev medlem: 10 september 2008, 22:50:23
Ort: Kungälv

Inlägg av eAk »

Nu harj ag skrivit lite kod här men är lite trött och orkari nte kolla vad som behöver ändras för den står mest och blinkar med delay bara.

Kod: Markera allt

#include <p16F690.inc>
     __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
     org 0


cblock 0x20
    variabel1, delay1, delay2   ;Used for internal calculations
  endc

Start:
    banksel ANSEL
    clrf    ANSEL
    banksel TRISC
    bcf     TRISC,0          ; make IO Pin RC0 an output
    bcf     TRISC,1          ; make IO Pin RC1 an output
	bsf	TRISA,3		;Gör ra3 till input
    
	banksel PORTC
	movlw	D'0'	;lägg 0 i W
	movwf	PORTC	;släck alla dioder
    ;bsf     PORTC,0          ; turn on LED C0 (DS1)
    ;bsf     PORTC,1          ; turn on LED C1 (DS2 ?)
	banksel PORTA

	movlw B'01010101' ;för att växla av /på på dioderna.
	movwf variabel1
loopa:	
	btfss PORTA,3	;här testar vi knappen (om 0 hoppa till loopb)
		goto loopb
			call vanta
			rrf variabel1 ;här snurrar vi variabel 1 för att byta siffra.
			
loopb:
	btfss variabel1,0	;här testar vi variabel1 (som har antingen 1/0 i bit 0 för varje gång knappen blivit klickad)
		goto loopd
			bsf PORTC,1
loopd:
	btfsc variabel1,0	;här testar vi variabel1 (som har antingen 1/0 i bit 0 för varje gång knappen blivit klickad)
		goto loopa
			bcf PORTC,1
			
	goto	loopa                ; börja om från loopa

vanta:
	movlw D'255'
	movwf delay1
	movwf delay2
loopc:
	decfsz delay1
		goto loopc
			decfsz delay2
				goto loopc
	return

    end
Plutonium
Inlägg: 60
Blev medlem: 24 februari 2005, 00:04:14
Ort: Essunga station
Kontakt:

Inlägg av Plutonium »

Tusen tack, skall laborera mer med detta imorgon, samt ändra min 5volts ingång.
eAk
Inlägg: 74
Blev medlem: 10 september 2008, 22:50:23
Ort: Kungälv

Inlägg av eAk »

Nu funkar koden :)
det var bara att ändral ite på debounce delen.

Kod: Markera allt

#include <p16F690.inc>
     __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
     org 0


cblock 0x20
    variabel1, delay1, delay2   ;Used for internal calculations
  endc

Start:
    banksel ANSEL
    clrf    ANSEL
    banksel TRISC
    bcf     TRISC,0          ; make IO Pin RC0 an output
    bcf     TRISC,1          ; make IO Pin RC1 an output
	bsf		TRISA,3		;Gör ra3 till input
    
	banksel PORTC
	movlw	D'0'	;lägg 0 i W
	movwf	PORTC	;släck alla dioder
    ;bsf     PORTC,0          ; turn on LED C0 (DS1)
    ;bsf     PORTC,1          ; turn on LED C1 (DS2 ?)
	banksel PORTA

	movlw B'01010101' ;för att växla av /på på dioderna.
	movwf variabel1
loopa:	
	btfsc PORTA,3	;här testar vi knappen (om 0 hoppa till loopb)
		goto loopb
			call vanta
			btfsc PORTA,3
				goto loopb
					rrf variabel1 ;här snurrar vi variabel 1 för att byta siffra.
loope:	
					btfss PORTA,3
						goto loope
			
loopb:
	btfss variabel1,0	;här testar vi variabel1 (som har antingen 1/0 i bit 0 för varje gång knappen blivit klickad)
		goto loopd
			bsf PORTC,1
loopd:
	btfsc variabel1,0	;här testar vi variabel1 (som har antingen 1/0 i bit 0 för varje gång knappen blivit klickad)
		goto loopa
			bcf PORTC,1
			
	goto	loopa                ; börja om från loopa

vanta:
	movlw D'80'
	movwf delay1
	movwf delay2
loopc:
	decfsz delay1
		goto loopc
			decfsz delay2
				goto loopc
	return

	end
Skriv svar