Hi List, I want to create a program that flashes a led every 1 second. Could someone tell me why it is not working, here it is: ;*************************************************************************** *** ; This file is a basic template for assembly code for a PIC18F4620. Copy * ; this file into your project directory and modify or add to it as needed. * ; * ; The PIC18FXXXX architecture allows two interrupt configurations. This * ; template code is written for priority interrupt levels and the IPEN bit * ; in the RCON register must be set to enable priority levels. If IPEN is * ; left in its default zero state, only the interrupt vector at 0x008 will * ; be used and the WREG_TEMP, BSR_TEMP and STATUS_TEMP variables will not * ; be needed. * ; * ; Refer to the MPASM User's Guide for additional information on the * ; features of the assembler. * ; * ; Refer to the PIC18FX525/X620 Data Sheet for additional * ; information on the architecture and instruction set. * ; * ;*************************************************************************** *** ; * ; Filename: * ; Date: * ; File Version: * ; * ; Author: * ; Company: * ; * ;*************************************************************************** *** ; * ; Files required: P18F2620.INC * ; * ;*************************************************************************** *** LIST P=18F4620 ;directive to define processor #include ;processor specific variable definitions ;*************************************************************************** *** ;Configuration bits ; The __CONFIG directive defines configuration data within the .ASM file. ; The labels following the directive are defined in the P18F4620.INC file. ; The PIC18FX525/X620 Data Sheet explains the functions of the ; configuration bits. __CONFIG _CONFIG1H, _OSC_INTIO67_1H __CONFIG _CONFIG2L, _BOREN_OFF_2L & _PWRT_OFF_2L __CONFIG _CONFIG2H, _WDT_OFF_2H __CONFIG _CONFIG4L, _DEBUG_OFF_4L & _LVP_OFF_4L & _STVREN_OFF_4L __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L __CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L __CONFIG _CONFIG7H, _EBTRB_OFF_7H ;*************************************************************************** *** ;Variable definitions ; These variables are only needed if low priority interrupts are used. ; More variables may be needed to store other special function registers used ; in the interrupt routines. CBLOCK 0x080 WREG_TEMP ;variable used for context saving STATUS_TEMP ;variable used for context saving BSR_TEMP ;variable used for context saving ENDC CBLOCK 0x000 EXAMPLE ;example of a variable in access RAM ENDC ;*************************************************************************** *** ;EEPROM data ; Data to be programmed into the Data EEPROM is defined here ORG 0xf00000 DE "Test Data",0,1,2,3,4,5 ;*************************************************************************** *** ;Reset vector ; This code will start executing when a reset occurs. ORG 0x0000 goto Main ;go to start of main code ;*************************************************************************** *** ;High priority interrupt vector ; This code will start executing when a high priority interrupt occurs or ; when any interrupt occurs if interrupt priorities are not enabled. ORG 0x0008 bra HighInt ;go to high priority interrupt routine ;*************************************************************************** *** ;Low priority interrupt vector and routine ; This code will start executing when a low priority interrupt occurs. ; This code can be removed if low priority interrupts are not used. ORG 0x0018 movff STATUS,STATUS_TEMP ;save STATUS register movff WREG,WREG_TEMP ;save working register movff BSR,BSR_TEMP ;save BSR register ; *** low priority interrupt code goes here *** ;get called about every 1 secs ;2mips/sec (8mhz int clock) divided by 65536*32 =~ 1secs bcf INTCON,TMR0IF incf LATD movff BSR_TEMP,BSR ;restore BSR register movff WREG_TEMP,WREG ;restore working register movff STATUS_TEMP,STATUS ;restore STATUS register retfie ;*************************************************************************** *** ;High priority interrupt routine ; The high priority interrupt code is placed here to avoid conflicting with ; the low priority interrupt vector. HighInt: ; *** high priority interrupt code goes here *** retfie FAST ;*************************************************************************** *** ;Start of main program ; The main program code is placed here. Main: ; *** main code goes here *** clrf TRISD ;portd as outputs clrf LATD bsf LATD,0 ;is our LED, turn it on bsf T0CON,TMR0ON ;turn timer0 on bcf T0CON,T0CS ;timer - not counter movlw B'00000100' iorwf T0CON ;prescaler=32 bcf T0CON,PSA ;use prescaler bcf T0CON,T016BIT ;16bit bcf INTCON,TMR0IF ;clr timer0 interrupt flag bsf INTCON,TMR0IE ;enable timer0 bsf INTCON,GIE ;enable interrupts donothing: nop bra donothing ;*************************************************************************** *** ;End of program END -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist