PIC newbie - took ages to program and i still have bugs


Closed Thread
Results 1 to 15 of 15

Hybrid View

  1. #1
    Join Date
    Sep 2007
    Posts
    12


    Did you find this post helpful? Yes | No

    Default part 5

    Code:
    ; check for pressed Mode switch
    	
    CHK_MDE	bsf	PORTA,1		; RA1 high so disp2 off
    	bsf	PORTA,2		; RA2 high so disp3 off
    	nop
    	nop
    	bcf	PORTA,0		; clear RA0 to check if mode switch pressed
    	nop
    	nop
    	btfsc	PORTA,4		; is mode switch pressed
    	goto	NO_OPEN		; switch open so no change
    	btfss	REPEAT,3	; test for speedo on/off flag bit 3	
    	goto	CLRSPED		; clear speedo on/off 
    	bcf	REPEAT,3	; set speedo
    	movlw	B'01001000'	; 's' on display for speedo
    	movwf	TEMP_1
    	goto	MODEOPN
    CLRSPED	bsf	REPEAT,3	; set speedo on/off flag
    	movlw	B'01111110'	; '-' on display for no speedo
    	movwf	TEMP_1
    	bcf	REPEAT,2	; clear speedometer flag
    MODEOPN	bsf	PORTA,2		; display off
    	bsf	PORTB,5		; clear a segment
    	bsf	PORTB,1		; clear c segment
    	bsf	PORTB,2		; d segment
    	bsf	PORTB,4		; f segment
    	bsf	PORTB,7		; g segment
    	bcf	PORTA,0		; clear RA0 to check if mode switch pressed
    	call	DELMO		; more delay time (multiplex time)
    	call	DELMO		; more delay time 
    	btfsc	PORTA,4		; wait for switch to open
    	goto	MODESTO		; store repeat setting when switch open
    
    ; multiplex display until switch opens
    
    	bsf	PORTA,0		; RA0 high
    	nop
    	nop
    	nop
    	bcf	PORTA,2		; RA2 low so display 1 lit
    	movf	TEMP_1,w
    	movwf	PORTB		; 
    	call	DELMO		; more delay time (multiplex)
    	goto 	MODEOPN
    
    ; delay period for multiplex rate
    
    DELMO	movlw 	D'255'		; delay period
    	movwf	TEMP_2
    SMALR	decfsz	TEMP_2,f	; reduce temp_2
    	goto	SMALR		; temp_2 smaller by 1
    	return			; end delay
    
    ; write new mode option to EEPROM4
    
    MODESTO	movlw	EEPROM4		; address for EEPROM4
    	movwf	EEADR		; address for write
    	movf	REPEAT,w	; flag stored
    	call	EWRITE		; write to EEPROM
    	
    ; calculate speed equivalent value
    
    NO_OPEN	call	SPDEQIV		; calculate speed equivalent
    	goto	INT_SET
    	
    ; subroutine to read EEPROM memory
    
    EEREAD	movwf 	EEADR		; indirect special function register
    	bsf 	STATUS,RP0	; select memory bank 1
    	bsf	EECON1,RD	; read EEPROM
    RD_RD	nop
    	btfsc	EECON1,RD	; skip if RD low (read complete)
    	goto 	RD_RD		; wait for low RD (read RD)	
    	bcf	STATUS,RP0	; select bank 0
    	movf	EEDATA,w	; EEPROM value in w
    	return
    
    ; subroutine to calculate speed equivalent of 8 per 5km/h this value is compared with 
    ; counted pulses from speed sensor.  
    	
    SPDEQIV	bcf	FLAG_1,5	; overspeed flag
    	bcf	FLAG_1,4	; clear alarm off flag
    	clrf	PULSE_CNT	; clear pulse counter
    	clrf	TIME_CNT1	; clear time counter 1
    	clrf	TIME_CNT2	; clear time counter 2 	
    	bsf	PORTA,3		; alarm output high 
    	clrf	SPEED_EQV	; clear speed equivalent store
    
    ; Convert the display readings to a binary speed equivalent value	
    
    	movf	DISP3,w		; look at DISP3 value
    	btfsc	STATUS,z	; check if 0
    	goto 	ZERO
    	xorlw	0x01		; check if a 1
    	btfsc	STATUS,z	; z is 1 if a 1
    	goto	ONE		; 
    	movlw	D'100'		; 100
    	movwf	SPEED_EQV	; 100 in speed equivalent
    ONE	movlw	D'100'
    	addwf	SPEED_EQV,f	; 200 if disp3 was a 2
    ZERO	movf	DISP2,w		; look at display 2
    	movwf	TEMP_X		; place in temporary register
    INC_SE	movlw	D'10'		; 10
    	addwf	SPEED_EQV,f	; increase speed equivalent by 10		
    	decfsz	TEMP_X,f	; reduce disp2 value
    	goto	INC_SE		; do again
    	movf	DISP1,w		; display 1 value
    	addwf	SPEED_EQV,f	; add display 1 value 		 
    	return
    
    	
    ; allow interrupts
    
    INT_SET	btfss	REPEAT,1	; bit 1 on/off flag
    	goto	RB0_INT		; no RB0 interrupt if speed alarm unit in off mode
    	bsf	INTCON,INTE	; set interrupt enable for RB0
    RB0_INT	bsf	INTCON,T0IE	; set interrupt enable for TMR0 
    SWITCH	bsf	INTCON,GIE	; set global interrupt enable for above
    
    ; check if a switch is pressed
    
    	bcf	FLAG_1,0	; clear multiplex update flag
    MULTIP	btfss	FLAG_1,0	; check if multiplex update occured
    	goto	MULTIP		; wait for new multiplex update for display
    	btfsc	PORTA,4		; if a switch is pressed, then bit 4 will be low
    	goto	SWITCH		; no switch pressed so look again
    	
    ; check for Cal switch
    
    	bcf	INTCON,GIE	; clear interrupts
    	bcf	ERR_FLG,0	; clear error flag when any switch pressed
    	movf	PORTA,w		; look at RA0-RA2
    	
    	movwf	TEMP_1		; store in temporary memory
    	iorlw	B'00000111'	; bit 0-2 high
    	movwf	PORTA		; place in port A, displays off
    	
    	movlw	0x1F		; delay period
    	movwf	VALUE_1		; VALUE_1 = w
    DELOOP	decfsz	VALUE_1,f	; decrease VALUE_1, skip if zero
    	goto	DELOOP	
    
    	btfss	PORTA,4		; is the cal switch pressed
    	goto 	CALIBRT		; yes it is the cal switch
    	movf	TEMP_1,w	; retrieve port A bit 0-2
    	movwf	PORTA		; port A bits 0-2 as before
    	nop			; give time for ports to change
    	nop
    	nop
    	btfsc	PORTA,4		; if a switch is pressed, then bit 4 will be low
    	goto	SWITCH		; no switch pressed so look again
    	btfsc	PORTA,0		; is it the mode switch	
    	goto	D_U_CHK
    	goto 	MODE
    D_U_CHK	btfss	REPEAT,1	; is on/off flag on
    	goto	WAIT		; no up down selection allowed when speed alarm unit is off
    	btfsc	PORTA,1		; is it the Down switch
    	goto	U_CHK
    	goto	DOWN
    U_CHK	btfsc	PORTA,2		; is it the UP switch
    	goto	SWITCH		; no switch reading
    	goto 	UP

  2. #2
    Join Date
    Sep 2007
    Posts
    12


    Did you find this post helpful? Yes | No

    Default part 6

    Code:
    MODE	btfss	REPEAT,1	; bit 1 a '1' for on (on/off flag)
    	goto	SET_1		; was off so turn on
    	btfsc	REPEAT,3	; speedo on/off flag
    	goto	BYSPD
    	btfss	REPEAT,2	; speedometer or alarm set mode
    	goto	SET_2		; repeat1 status same, repeat2 =1
    BYSPD	bcf	REPEAT,1	; if set then clear on/off flag
    	bcf	REPEAT,2	; clear speedometer flag
    	bcf	INTCON,INTE	; clear interrupt enable for RB0
    	clrf	PULSE_CNT	; clear pulse counter
    	clrf	TIME_CNT1	; clear time counter 1
    	clrf	TIME_CNT2	; clear time counter 2 	
    	goto 	WAIT
    SET_2	bsf	REPEAT,2	; set speedometer flag
    	goto	NO_SET1
    SET_1	bsf	REPEAT,1	; if clear then set on/off flag
    NO_SET1	bsf	INTCON,INTE	; set interrupt enable for RB0 
    	goto	WAIT
    
    UP	movf	DISP1,w		; display1 to w register
    	xorlw  	0x05		; compare with decimal'5' 
    	btfss	STATUS,Z	; skip next instruction if Disp <9 decimal
    	goto	UP_1		; increase display1
    
    ; check for maximum on display
    
    	movf	DISP2,w		; look at display 2
    	xorlw	0x05		; compare with a 5 
    	btfss	STATUS,Z	; is it 5 then check DISP3
    	goto	DISP_UP
    	movf	DISP3,w		; look at disp3
    	xorlw	0x02		; compare with a 1
    	btfsc	STATUS,Z	; is it a 2
    	goto	WAIT		; maximum of 255 on display so stop counting up
    
    ; digit overflow 
    
    DISP_UP	clrf	DISP1		; Disp value cleared as it was beyond BCD range (0-9)
    	movf	DISP2,w		; display2 value to w
    	xorlw	0x09		; compare with decimal'9' (H'9') 	
    	btfss	STATUS,Z	; skip next instruction if Disp <9 decimal
    	goto	UP_2		; increase display2
    	clrf	DISP2		; Disp value cleared as it was beyond BCD range (0-9)
    	goto 	UP_3		; increase display3
    		
    UP_1	movlw	0x05		; a 5 in the display (count by 5's)
    	movwf	DISP1		; display1 increased
    	goto	WAIT
    UP_2	incf	DISP2,f		; display2 increased
    	goto	WAIT
    UP_3	incf	DISP3,f		; display3 increased
    	goto	WAIT
    
    DOWN	movf	DISP1,w		; display1 to w register
    	xorlw	0x00		; compare with decimal'0' to see if was zero	
    	btfss	STATUS,Z	; skip next instruction if Disp 0 decimal
    	goto	DN_1		; decrease display1
    
    ; check for display minimum
    
    	movf	DISP2,w		; look at display 2
    	xorlw	0x00		; compare with 0
    	btfss	STATUS,Z	; 
    	goto	DISP_DN		; not 0 so can count down
    	movf	DISP3,w		; look at display 3
    	xorlw	0x00		; compare with 0
    	btfsc	STATUS,Z
    	goto 	WAIT		; do not decrease beyond 000
    
    DISP_DN	movlw	H'05'		; place a 5 in display1
    	movwf	DISP1		; disp1 = 5
    	movf	DISP2,w		; display2 value to w
    	xorlw	0x00		; compare with decimal'0' to see if 0	
    	btfss	STATUS,Z	; skip next instruction if Disp 0 decimal
    	goto	DN_2		; decrease display2
    	movlw	H'09'		; Disp value = 9
    	movwf	DISP2
    	goto 	DN_3		; decrease display3
    		
    DN_1	clrf	DISP1		; display1 decreased to 0
    	goto	WAIT
    DN_2	decf	DISP2,f		; display2 decreased
    	goto	WAIT
    DN_3	decf	DISP3,f		; display3 decreased
    	
    ; wait period (delay plus EEPROM write time)
    
    ; delay loop plus apply tone to piezo alarm as switch press acknowledgement
    
    WAIT	bsf	INTCON,GIE	; allow global interrupts
    	movlw	D'100'		; set delay period for repeat of value 2 delay (sets key
    				; acknowledge tone frequency) 
    	movwf	VALUE_1		; VALUE_1 = w
    	movlw	D'50'		; set delay period value 2 (also sets key acknowledge tone period)
    LOOP_1	movwf	VALUE_2		; VALUE_2 = w
    LOOP_2	decfsz	VALUE_2,f	; decrease VALUE_2, skip if zero
    	goto 	LOOP_2
    	btfsc	PORTA,3		; alarm output check if high or low
    	goto	CLR_T
    	bsf	PORTA,3		; alarm out high
    DEC_V1	decfsz	VALUE_1,f	; decrease VALUE_1, skip if zero
    	goto	LOOP_1	
    	bsf	PORTA,3		; alarm out high
    	goto 	DELTME		; delay time
    CLR_T	bcf	PORTA,3		; alarm out low
    	goto	DEC_V1
    	
    ; more delay time 
    
    DELTME	movlw	D'50'		; set delay period 
    	movwf	VALUE_1		; VALUE_1 = w
    	movlw	D'255'		; set delay period value 2 
    LP_1	movwf	VALUE_2		; VALUE_2 = w
    LP_2	decfsz	VALUE_2,f	; decrease VALUE_2, skip if zero
    	goto 	LP_2
    	decfsz	VALUE_1,f	; decrease VALUE_1, skip if zero
    	goto	LP_1	
    	
    ; EEPROM write. Store new display values in EEPROM
    	
    EPWRT	movlw	EEPROM1		; address for EEPROM1
    	movwf	EEADR		; address to write
    	movf	DISP1,w		; display1 data to w
    	call 	EWRITE		; EEPROM write sequence
    	movlw	EEPROM2		; address for EEPROM2
    	movwf	EEADR		; address for write
    	movf	DISP2,w
    	call	EWRITE
    	movlw	EEPROM3		; address for EEPROM3
    	movwf	EEADR		; address for write
    	movf	DISP3,w
    	call	EWRITE
    	movlw	EEPROM4		; address for EEPROM4
    	movwf	EEADR		; address to write to
    	movf	REPEAT,w	; repeat values (bit 0 is alarm repeat, bit 1 is on/off)
    	call 	EWRITE
    
    ; when a new speed setting is selected recalculate speed equivalent value
     	
    	bcf	INTCON,GIE	; disable interrupts
    	call	SPDEQIV		; recalculate speed equivalent value
    	bsf	INTCON,GIE	; enable interrupts
    	goto	CLOSED		; out from EEPROM write
    
    ; subroutine to write to EEPROM
    
    EWRITE	bcf	FLAG_1,6	; EEPROM write repeat flag
    	movwf	TEMP_2		; store w in temporary storage
    EWRIT	movf	TEMP_2,w	; place value in w (used for read data sequence) 
    	movwf	EEDATA		; data register
    	bcf	INTCON,GIE	; disable interrupts
    	bsf	STATUS,RP0	; select bank 1
    	bsf	EECON1,WREN	; enable write
    	movlw	0x55		; place 55H in w for write sequence
    	movwf 	EECON2 		; write 55H to EECON2
    	movlw 	0xAA		; AAH to w
    	movwf	EECON2		; write AA to EECON2
    	bsf	EECON1,WR	; set WR bit and begin write sequence
    	bsf	INTCON,GIE	; enable interrupts
    	bcf	EECON1,WREN	; clear WREN bit
    WRITE	btfsc	EECON1,WR	; skip if write complete WR=0 when write complete
    	goto 	WRITE		; not written yet
    	bcf	EECON1,EEIF	; clear write interrupt flag 
    	
    ; read EEPROM DATA and check if written correctly
    	
    	bsf 	STATUS,RP0	; select memory bank 1
    	bsf	EECON1,RD	; read EEPROM
    RD_AGN	nop
    	btfsc	EECON1,RD	; skip if RD low (read complete)
    	goto 	RD_AGN		; wait for low RD	
    	bcf	STATUS,RP0	; select bank 0
    	movf	EEDATA,w	; EEPROM value in w
    	subwf	EEDATA,w	; compare read value with value stored
    	btfsc	STATUS,z	; skip if not the same
    	return			; value correctly written 
    	btfsc	FLAG_1,6	; write repeat bit, skip if clear and rewrite
    	return
    	bsf	FLAG_1,6	; set repeat flag rewrite once only 
    	goto 	EWRIT		; rewrite as not written correctly
    	
    ; wait for switch to open (must test for closed switch when RA0, RA1 and RA2 are low
    ; because switch will appear open at RA4 when switch pull down via RA0-RA2 is high) 	
    
    CLOSED	bcf	FLAG_1,1	; clear flag that indicates switch closed
    	call	ON		; check for closed switch
    	call	ON		; do three times to return to original switch closure
    	call	ON		;
    	call	ON 		; do again just in case missed an interrupt during call
    	call	ON 		; do again just in case missed one interrupt during call
    	btfsc	FLAG_1,1	; was switch closed 	
    	goto 	CLOSED		; yes go to check again
    	goto 	SWITCH		; switch open so out
     
    ; subroutine to wait for switch to reopen
    	
    ON	bcf	INTCON,T0IE	; prevent multiplex update
    	bcf	FLAG_1,0	; clear flag that indicates update interrupt for display
    	
    RE_CHK	btfsc	PORTA,4		; check if switch closed
    	goto	OPEN
    	bsf	FLAG_1,1	; switch closed so set flag
    	bsf	INTCON,T0IE	; allow multiplex interrupt
    	goto	RE_CHK 		; closed so check till open 
    OPEN	bcf	FLAG_1,0	; clear multiplex update flag wait for next multiplex update
    	bsf 	INTCON,T0IE	; allow multiplex update
    FLG_TST	btfss	FLAG_1,0	; is flag set indicating a new interrupt for multiplexing
    	goto 	FLG_TST		; wait 
    	return
    
    ; calibrate routine
    
    CALIBRT	btfss	REPEAT,1	; is on/off flag on
    	goto	WAIT		; no calibration allowed when speed alarm unit is off
    	btfsc	REPEAT,2	; is speedometer on
    	goto	WAIT		; no calibration if speedometer mode
    	bcf	INTCON,GIE	; disable interrupts
    	clrf	PULSE_CNT	; clear pulse counter
    	clrf	TIME_CNT1	; clear time counter 1
    	clrf	TIME_CNT2	; clear time counter 2 	
    	bsf	FLAG_1,7	; calibrate flag set
    	bcf	INTCON,T0IF	; clear timer interrupt flag
    	bcf	INTCON,INTF	; clear interrupt flag
    	bsf	INTCON,GIE	; allow interrupts
    FLG1_CK	btfsc	FLAG_1,7	; wait for end of calibrate, skip if end
    	goto	FLG1_CK		; recheck flag 1 bit 7 (cleared at end of calibration)
    
    ; store new calibration count numbers in EEPROM	
    
    	movlw	EEPROM5		; address for EEPROM5
    	movwf	EEADR		; address to write
    	movf	TIME_CNT3,w	; counter 3 to w
    	call 	EWRITE		; EEPROM write sequence
    	movlw	EEPROM6		; address for EEPROM6
    	movwf	EEADR		; address to write
    	movf	TIME_CNT4,w	; counter 4 to w
    	call 	EWRITE		; EEPROM write sequence	
    	goto	SWITCH		; check for a new closed switch 
    
    ; Subroutine to convert from 8-bit binary to 2-digit BCD (packed)
    ; Binary value is in BIN_0  
    ; Result in BCD is in BCD_0 & BCD_1.  
    ; BCD_0 is MSB, BCD_1 is LSB
    
    BCD	bcf	STATUS,c	; clear carry bit
    	movlw	D'8'
    	movwf	CNT_8		; 8 in count
    	clrf	BCD_0
    	clrf	BCD_1		; set BCD registers to 0 
    LOOPBCD	rlf	BIN_0,f		; shift left binary registers
    	rlf	BCD_1,f		; MSB shift left
    
    	rlf	BCD_0,f		; LSB shift left BCD registers
    	decfsz	CNT_8,f		; reduce count value return when 0
    	goto	DECADJ		; continue decimal adjust
    	return			; completed decimal to BCD operation
    
    ; subroutine decimal adjust
    
    DECADJ	movlw	BCD_1		; BCD LSB address
    	movwf	FSR		; pointer for BCD1
    	call	ADJBCD		; subroutine to adjust BCD
    	movlw	BCD_0		; BCD MS address
    	movwf	FSR		; pointer for BCD0
    	call	ADJBCD
    	goto	LOOPBCD
    
    ; subroutine adjust BCD
    
    ADJBCD	movlw	0x03		; w has 03 
    	addwf	INDF,w		; add 03 to BCDx register (x is 0-1)
    	movwf	TEMP		; store w
    	btfsc	TEMP,3		; test if >7
    	movwf	INDF		; save as LS digit
    	movlw	0x30		; 3 for MSbyte
    	addwf	INDF,w		; add 30 to BCDx register
    	movwf	TEMP		; store w in temp
    	btfsc	TEMP,7		; test if >7
    	movwf	INDF		; save as MS digit
    	return			; end subroutine
    
    	
    	end

  3. #3
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,624


    Did you find this post helpful? Yes | No

    Default

    Hi,
    I'm not saying that you won't get any help but since this is a forum for PicBasic you MAY not get the help you're looking for. Something like the PICList may be more suitable if you're "writing" in, or having problems with ASM.

    BUT, with that being said, have you selected 16F84 in MPLAB? Configure/Select Device and then point to 16F84.

    /Henrik Olsson.

  4. #4
    Join Date
    Feb 2003
    Location
    Salt Lake City, Utah USA
    Posts
    517


    Did you find this post helpful? Yes | No

    Default

    as a starters,

    C:\DOCUMENTS AND SETTINGS\\MY DOCUMENTS\SPEED254.ASM 323 : Symbol not previously defined (z) Error[113]
    C:\DOCUMENTS AND SETTINGS\\MY DOCUMENTS\SPEED254.ASM 362 : Symbol not previously defined (c) Error[113]
    change commands that look like this (with c or z in them)

    Code:
    	btfsc	STATUS,z	; check if 0
    to this

    Code:
    	btfsc	STATUS,Z	; check if 0
    Paul Borgmeier
    Salt Lake City, UT
    USA
    __________________

  5. #5
    Join Date
    Sep 2007
    Posts
    12


    Did you find this post helpful? Yes | No

    Default thanks guys

    Thanks for the help so far - i'll check out piclist and make the above corrections.

    Regards,

  6. #6
    Join Date
    Sep 2007
    Posts
    12


    Did you find this post helpful? Yes | No

    Default Thanks for the tips so far

    btw - I got a build succeeded confirmation - however I have the following error messages.

    Code:
    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F84 "SPEED254.ASM" /l"SPEED254.lst" /e"SPEED254.err"
    Message[302] C:\PIC LAB\SPEED254.ASM 542 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 544 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 546 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 770 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 773 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 1049 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 1051 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 1053 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 1054 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 1056 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 1058 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 1060 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 1065 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] C:\PIC LAB\SPEED254.ASM 1068 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Loaded C:\PIC LAB\SPEED254.cod.
    BUILD SUCCEEDED: Wed Sep 26 07:47:42 2007
    it seems like the error occurs when accessing eeproms or clearing flags

    Does anyone know how to rectify a "Register in operand not in bank 0" error/warning?
    Last edited by Trickae; - 25th September 2007 at 23:53.

  7. #7
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    As long as you're sure you did the BANK switching manually, there's no real problem. Unless you may spread some BANKSEL here and there... not sure enough it will solve the warning message so far

    BANKSEL is a nice MPASM tool, it avoid to do the bankswitching yourself AND manually. Same thing as CHK?RP do with PBP. NO YOU DON'T WANT TO USE BANKSEL WITH PBP unless you know some tricks. Even if you know them... i don't find any advantage myself. Maybe Darrel could confirm or contradict it.

    Assuming you already did it (as it seems to be), you just need to disable the warning message with the following

    Code:
    errorlevel -302

    HTH
    Last edited by mister_e; - 26th September 2007 at 01:23.
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts