Har precis gått över från C till asm och har skrivit ett program som ska blinka en lysdiod i 0.5 sek intervaller.
Givetvis fungerar det inte

Använder Wisp628 för programmering, allt ok där, inga felmedelanden.
MCLRE sitter med 10kohm till VDD.
På RC4 har jag först 1kohm och sedan en lysdiod till GND (lysdioden testad, funkar fint)
Matningen får genom en 7805, får 4.93V. Sitter även en 47uF elektrolyt över matningen
(Vänd åt rätt håll)
Samt en tantal direkt vid PICen.
Lysdioden tänds, men den släcks inte, bara lyser.
Så jag tror det är ett mjukvaru/nybörjarfel

Koden:
Kod: Markera allt
;"Base" program for the 16F886 processor, Version 0.1
;Made by Net4All net.4.all@hotmail.com
Processor 16F886
LIST P=PIC16F886
#include <p16f886.inc>
__config _CONFIG1, _WDT_OFF & _LVP_OFF & _BOR_OFF & _DEBUG_OFF & _FCMEN_OFF & _IESO_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTOSCIO
__config _CONFIG2, _WRT_OFF
org 0x00
;clrf PCLATH ;The program will later be used with a bootloader
;pagesel main
goto main
cblock ;some vars used by the 0.5 sec delay routine
d1
d2
d3
endc
init ;Setup all modules in the PIC (TRIS,Interrupt,ADC,CMP,CCP,Timers)
;we use 4Mhz intosc, no matter what the config says
movlw 0x61
banksel OSCCON
movfw OSCCON
;Now, disable interrupts
banksel PIE1
clrf PIE1
banksel PIE2
clrf PIE2
banksel INTCON
clrf INTCON
;Set all pins to inputs
movlw 0xff
banksel TRISA
movfw TRISA
banksel TRISB
movwf TRISB
banksel TRISC
movfw TRISC
;ADC off
banksel ADCON0
clrf ADCON0
banksel ADCON1
clrf ADCON1
banksel ANSEL
clrf ANSEL
banksel ANSELH
clrf ANSELH
;CCP off
banksel CCP1CON
clrf CCP1CON
banksel CCP2CON
clrf CCP2CON
;CMP off
banksel CM1CON0
clrf CM1CON0
banksel CM2CON0
clrf CM2CON0
;Disable timers
banksel T1CON
clrf T1CON
banksel T2CON
clrf T2CON
banksel OPTION_REG
clrf OPTION_REG
banksel SSPCON
clrf SSPCON
return
delay ;A delay routine, delays 0.5 sec at 4Mhz, made using http://www.piclist.com/techref/piclist/codegen/delay.htm
banksel d1
movlw 0x03
movwf d1
movlw 0x18
movwf d2
movlw 0x02
movwf d3
Delay_0
decfsz d1, f
goto $+2
decfsz d2, f
goto $+2
decfsz d3, f
goto Delay_0
goto $+1
goto $+1
goto $+1
return
main
call init ;Initiate port, and all the rest
banksel TRISC
bcf TRISC,4 ;RC4 output
loop
banksel PORTC
bsf PORTC,4 ;turn on led
call delay ;wait 0.5 sec
banksel PORTC
bcf PORTC,4 ;switch off led
call delay ;wait another 0.5 sec
goto loop ;over and over
end ;we will never get here
MEN, borde inte den här koden funka, även om den är dåligt skriven?