PIC16F628A - Blinka den - Nybörjare
Ett bra länktips är detta:
http://techtrain.microchip.com/x14/
Fick då igång mitt förstående för vad jag höll på med
Databladen kan vara lite svårsmälta ibland tycker jag. iaf. till en början när man inte har full koll på alla begrepp...
http://techtrain.microchip.com/x14/
Fick då igång mitt förstående för vad jag höll på med

Databladen kan vara lite svårsmälta ibland tycker jag. iaf. till en början när man inte har full koll på alla begrepp...
f'låt 
Jag hade problem med att MPLINK inte gjorde någon HEX-fil. Jag tog bort .lkr-filen efter lite googlande och fick ut min fil.
Ny lyser LEDen iaf. Om man ska får den att blinka, ska man köra delay_funktioner eller lära sig timer direkt? Känns som om det är lika bra att ta itu med timern med en gång.

Jag hade problem med att MPLINK inte gjorde någon HEX-fil. Jag tog bort .lkr-filen efter lite googlande och fick ut min fil.
Ny lyser LEDen iaf. Om man ska får den att blinka, ska man köra delay_funktioner eller lära sig timer direkt? Känns som om det är lika bra att ta itu med timern med en gång.
OK, det betyer att din assembler kod är skriven i "absolute mode".
MPLINK (och linker-scripts, LKR filer) används till "relocatable mode".
Du kan blinka med en timer och en interrupt rutin, t.ex som nedan.
Obs att exemplet är i relocatable mode, och du ska lägga till rätt LKR fil till projektet.
MPLINK (och linker-scripts, LKR filer) används till "relocatable mode".
Du kan blinka med en timer och en interrupt rutin, t.ex som nedan.
Obs att exemplet är i relocatable mode, och du ska lägga till rätt LKR fil till projektet.
Kod: Markera allt
;**********************************************************************
; Enkelt blink-a-led, 16F628A. *
; *
;**********************************************************************
; Files required: P16F628A.INC *
; 16F628A.LNK *
; *
;**********************************************************************
list p=16f628A
#include <p16f628A.inc>
__CONFIG _DATA_CP_OFF & _CP_OFF & _LVP_OFF & _BODEN_OFF & _BOREN_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _MCLRE_OFF
RESET_VECTOR CODE 0x000 ; processor reset vector
goto start ; go to beginning of program
INT_VECTOR CODE 0x004 ; interrupt vector location
goto isr_routine ; goto main interrupt service routine.
;***************************************************************
MAIN CODE
start
banksel cmcon
movlw h'07'
movwf cmcon ; Stäng av ADC.
banksel trisa
clrf trisa
clrf trisb ; Alla pinnar = utgångar.
banksel t1con
movlw b'00110001'
movwf t1con ; Se datablad...
banksel pie1
movlw b'00000001'
movwf pie1 ; Enable avbrott från TMR1.
banksel intcon
bsf intcon, peie
bsf intcon, gie ; Enable avbrott...
loop
goto loop ; Vänta på avbrott...
;***************************************************************
ISR_ROUTINE CODE
isr_routine
banksel portb
comf porta ; Blinka !!
banksel pir1
bcf pir1, tmr1if ; clear avbrotts flagga.
retfie
end
Senast redigerad av sodjan 4 september 2006, 23:10:56, redigerad totalt 1 gång.