Russ Kincaid
- 20th March 2006, 20:13
I wrote a short program for 16F627A, using internal oscillator, WDT and power up timers disabled, MCLR is an input. low voltage programming enabled. The program runs OK but 7 seconds after power is applied. I don't want that delay, how do I get rid of it? This is the .ASM file, I don't understand it, but perhaps someone can tell me how there is a delay here.
; PicBasic Pro Compiler Demo, (c) 1998, 2004 microEngineering Labs, Inc. All Rights Reserved.
PM_USED EQU 1
INCLUDE "16F627A.INC"
RAM_START EQU 00020h
RAM_END EQU 0014Fh
RAM_BANKS EQU 00003h
BANK0_START EQU 00020h
BANK0_END EQU 0007Fh
BANK1_START EQU 000A0h
BANK1_END EQU 000EFh
BANK2_START EQU 00120h
BANK2_END EQU 0014Fh
EEPROM_START EQU 02100h
EEPROM_END EQU 0217Fh
R0 EQU RAM_START + 000h
R1 EQU RAM_START + 002h
R2 EQU RAM_START + 004h
R3 EQU RAM_START + 006h
R4 EQU RAM_START + 008h
R5 EQU RAM_START + 00Ah
R6 EQU RAM_START + 00Ch
R7 EQU RAM_START + 00Eh
R8 EQU RAM_START + 010h
FLAGS EQU RAM_START + 012h
GOP EQU RAM_START + 013h
RM1 EQU RAM_START + 014h
RM2 EQU RAM_START + 015h
RR1 EQU RAM_START + 016h
RR2 EQU RAM_START + 017h
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00012 led var byte
_led EQU RAM_START + 018h
_PORTL EQU PORTB
_PORTH EQU PORTA
_TRISL EQU TRISB
_TRISH EQU TRISA
#define _PORTB_2 PORTB, 002h
#define _PORTB_0 PORTB, 000h
#define _PORTB_1 PORTB, 001h
INCLUDE "FLASHB~1.MAC"
INCLUDE "PBPPIC14.LIB"
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00013 TRISA = %00000000 'ALL OUTPUTS
MOVE?CB 000h, TRISA
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00014 TRISB = %00000000
MOVE?CB 000h, TRISB
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00015 PORTB = %00000011 'PINS 6 & 7 HIGH, ALL OTHERS LOW
MOVE?CB 003h, PORTB
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00017 FOR LED = 1 TO 5 'FLASH LEDs 5 TIMES
MOVE?CB 001h, _led
LABEL?L L00001
CMPGT?BCL _led, 005h, L00002
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00018 PORTB.2 = 1 'LEDs ON PIN 8
MOVE?CT 001h, _PORTB_2
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00019 PAUSE 150
PAUSE?C 096h
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00020 PORTB.2 = 0
MOVE?CT 000h, _PORTB_2
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00021 PAUSE 150
PAUSE?C 096h
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00022 NEXT LED
NEXT?BCL _led, 001h, L00001
LABEL?L L00002
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00023 FREQOUT 3, 5000, 2500 'SOUND ON PIN 9
FREQOUTPIN?C 003h
FREQOUTTIME?C 01388h
FREQOUT?C 009C4h
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00024 PORTB.0 = 0
MOVE?CT 000h, _PORTB_0
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00025 PORTB.1 = 0 ' TURN OFF POWER
MOVE?CT 000h, _PORTB_1
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00026 END
END?
END
; PicBasic Pro Compiler Demo, (c) 1998, 2004 microEngineering Labs, Inc. All Rights Reserved.
PM_USED EQU 1
INCLUDE "16F627A.INC"
RAM_START EQU 00020h
RAM_END EQU 0014Fh
RAM_BANKS EQU 00003h
BANK0_START EQU 00020h
BANK0_END EQU 0007Fh
BANK1_START EQU 000A0h
BANK1_END EQU 000EFh
BANK2_START EQU 00120h
BANK2_END EQU 0014Fh
EEPROM_START EQU 02100h
EEPROM_END EQU 0217Fh
R0 EQU RAM_START + 000h
R1 EQU RAM_START + 002h
R2 EQU RAM_START + 004h
R3 EQU RAM_START + 006h
R4 EQU RAM_START + 008h
R5 EQU RAM_START + 00Ah
R6 EQU RAM_START + 00Ch
R7 EQU RAM_START + 00Eh
R8 EQU RAM_START + 010h
FLAGS EQU RAM_START + 012h
GOP EQU RAM_START + 013h
RM1 EQU RAM_START + 014h
RM2 EQU RAM_START + 015h
RR1 EQU RAM_START + 016h
RR2 EQU RAM_START + 017h
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00012 led var byte
_led EQU RAM_START + 018h
_PORTL EQU PORTB
_PORTH EQU PORTA
_TRISL EQU TRISB
_TRISH EQU TRISA
#define _PORTB_2 PORTB, 002h
#define _PORTB_0 PORTB, 000h
#define _PORTB_1 PORTB, 001h
INCLUDE "FLASHB~1.MAC"
INCLUDE "PBPPIC14.LIB"
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00013 TRISA = %00000000 'ALL OUTPUTS
MOVE?CB 000h, TRISA
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00014 TRISB = %00000000
MOVE?CB 000h, TRISB
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00015 PORTB = %00000011 'PINS 6 & 7 HIGH, ALL OTHERS LOW
MOVE?CB 003h, PORTB
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00017 FOR LED = 1 TO 5 'FLASH LEDs 5 TIMES
MOVE?CB 001h, _led
LABEL?L L00001
CMPGT?BCL _led, 005h, L00002
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00018 PORTB.2 = 1 'LEDs ON PIN 8
MOVE?CT 001h, _PORTB_2
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00019 PAUSE 150
PAUSE?C 096h
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00020 PORTB.2 = 0
MOVE?CT 000h, _PORTB_2
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00021 PAUSE 150
PAUSE?C 096h
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00022 NEXT LED
NEXT?BCL _led, 001h, L00001
LABEL?L L00002
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00023 FREQOUT 3, 5000, 2500 'SOUND ON PIN 9
FREQOUTPIN?C 003h
FREQOUTTIME?C 01388h
FREQOUT?C 009C4h
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00024 PORTB.0 = 0
MOVE?CT 000h, _PORTB_0
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00025 PORTB.1 = 0 ' TURN OFF POWER
MOVE?CT 000h, _PORTB_1
; C:\PROGRA~1\MECANI~1\MCS\FLASHB~1.PBP 00026 END
END?
END