Sida 3 av 3

Postat: 11 september 2008, 01:24:13
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.

Postat: 11 september 2008, 01:32:22
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?

Postat: 11 september 2008, 01:40:29
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

Postat: 11 september 2008, 02:09:18
av Plutonium
Tusen tack, skall laborera mer med detta imorgon, samt ändra min 5volts ingång.

Postat: 11 september 2008, 02:20:28
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