|
|
View previous topic :: View next topic |
Author |
Message |
Guest
|
stuck in #use delay |
Posted: Tue Aug 08, 2006 8:46 am |
|
|
Hi,
Just starting a new project and the code gets stuck at line 0014 and 0016! Not seen this before.
Code: |
.................... #include <18F6310.h>
.................... //////// Standard Header file for the PIC18F6310 device ////////////////
.................... #device PIC18F6310
.................... #list
....................
.................... #device ICD=TRUE
.................... #device adc=8
....................
.................... #FUSES NOWDT //No Watch Dog Timer
.................... #FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
.................... #FUSES HS //High speed osc with HW enabled 4X PLL
.................... #FUSES NOPUT //Power Up Timer
.................... #FUSES DEBUG //Debug mode for use with ICD
.................... #FUSES MCLR //Master Clear pin enabled
.................... #use delay(clock=10000000)
0004: CLRF FEA
0006: MOVLW 07
0008: MOVWF FE9
000A: MOVF FEF,W
000C: BZ 002C
000E: MOVLW 03
0010: MOVWF 01
0012: CLRF 00
0014: DECFSZ 00,F
0016: BRA 0014
0018: DECFSZ 01,F
001A: BRA 0012
001C: MOVLW 3C
001E: MOVWF 00
0020: DECFSZ 00,F
0022: BRA 0020
0024: NOP
0026: NOP
0028: DECFSZ FEF,F
002A: BRA 000E
002C: GOTO 00A0 (RETURN) |
I am using the ICD and it seems to be functioning correctly returning the correct clock speed and steping through the code (well to line 14/16!).
Code never gets further than this! Any ideas? |
|
|
Guest
|
|
Posted: Tue Aug 08, 2006 8:52 am |
|
|
I will add that you can program the exact same .cof file into the PIC using the ICD-U program and the code exectues perfectly.
I presume that is must be a debuger bug? |
|
|
Guest
|
|
Posted: Tue Aug 08, 2006 9:36 am |
|
|
When I click on "Stack" in the Debug window I get:
@delay_ms1(ERROR #22 : Bad expression syntax)
Does anyone know what this means? There is a delay_ms(100) later in the code which looks valid to me. |
|
|
Ttelmah Guest
|
|
Posted: Tue Aug 08, 2006 10:34 am |
|
|
First thing to understand, is that code is not shown in the listing 'in order'. The 'use delay' listing, is only called, when you reach a delay. In front of this, there ahould be a jump to your 'main' code. This is normally the first instruction in the ROM, but gets modified for debugging. You don't say what compiler you are using?. There have been problems with some chips/compiler versions, with this not being implemented properly. I have just tried a 'test' program for your chip, with the current compiler, and debugging enabled, and it appears correct. Note the jump, which is not showing in your listing:
Code: |
0000: GOTO 0030
.................... #include "C:\Program Files\PICC\amtest\test6310.h"
.................... #include <18F6310.h>
.................... //////// Standard Header file for the PIC18F6310 device ////////////////
.................... #device PIC18F6310
.................... #list
....................
.................... #device adc=8
.................... #device ICD=TRUE
....................
.................... #FUSES NOWDT //No Watch Dog Timer
.................... #FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
.................... #FUSES HS //High speed Osc (> 4mhz)
.................... #FUSES BROWNOUT //Reset when brownout detected
.................... #FUSES BORV21 //Brownout reset at 2.1V
.................... #FUSES NOPUT //No Power Up Timer
.................... #FUSES BW16 //16-bit external bus mode
.................... #FUSES STVREN //Stack full/underflow will cause reset
.................... #FUSES DEBUG //No Debug mode for ICD
.................... #FUSES MCLR //Master Clear pin enabled
....................
.................... #use delay(clock=10000000)
0004: CLRF FEA
0006: MOVLW 06
0008: MOVWF FE9
000A: MOVF FEF,W
000C: BZ 002C
000E: MOVLW 03
0010: MOVWF 01
0012: CLRF 00
0014: DECFSZ 00,F
0016: BRA 0014
0018: DECFSZ 01,F
001A: BRA 0012
001C: MOVLW 3C
001E: MOVWF 00
0020: DECFSZ 00,F
0022: BRA 0020
0024: NOP
0026: NOP
0028: DECFSZ FEF,F
002A: BRA 000E
002C: GOTO 0098 (RETURN)
....................
....................
....................
....................
.................... void main() {
0030: CLRF FF8
|
If the listing is 'as you show', without the jump anywhere, then it sounds as if you have a compiler problem with your version.
However you have clipped the 'header', showing the compiler version, and possibly this jump as well...
Best Wishes |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|