|
|
View previous topic :: View next topic |
Author |
Message |
apox
Joined: 04 Jul 2004 Posts: 2
|
Major bug in PCH V3.203 with 18f6680???? |
Posted: Sun Jul 04, 2004 5:46 pm |
|
|
What's wrong with the compiler.
Here is a disassembly.
#use fast_io(A)
1089: set_tris_a( 0x55 );
0010BC 0E55 MOVLW 0x55 // THIS IS WRONG
1090: output_a(val);
0010C0 CB5B MOVFF 0xb5b, 0xf89 // This is CORRECT
1091:
1092: #use fixed_io(a_outputs=PIN_A2, PIN_A3)
1093: set_tris_a( 0x55 );
0010C4 0E55 MOVLW 0x55 // THIS IS WRONG
1094: output_a(val);
0010C8 0EF3 MOVLW 0xf3 // THIS IS WRONG
1095:
1096: #use standard_io(A)
1097: set_tris_a( 0x55 );
0010D0 0E55 MOVLW 0x55 // THIS IS WRONG
1098: output_a(val);
0010D4 0E00 MOVLW 0 // THIS IS WRONG
HELP!!! Am I doing something wrong?
-Craig Beiferman |
|
|
Guest
|
It is not a bug |
Posted: Sun Jul 04, 2004 10:36 pm |
|
|
Hi, Craig:
It does not seem to be a bug to me, what you had is
Quote: |
1089: set_tris_a( 0x55 );
0010BC 0E55 MOVLW 0x55 // THIS IS WRONG
1090: output_a(val);
0010C0 CB5B MOVFF 0xb5b, 0xf89 // This is CORRECT
|
well, what is the opcode in 0010BE ?? a lot of opcodes are missing in your listing ! What's wrong is your disassembler.
Here is my test code and listing, nothing wrong
Code: | MPASM
CCS PCH C Compiler, Version 3.203, 22330
Filename: C:\YZ_PIC\My_project_Wu\junk.LST
ROM used: 64 bytes (0%)
Largest free fragment is 57344
RAM used: 5 (0%) at main() level
5 (0%) worst case
Stack: 0 locations
0000 EF51 F008 00001 GOTO 10A2
0000 00002 ....................
0000 00003 .................... #include <18F6680.H>
0000 00004 .................... //////// Standard Header file for the PIC18F6680 device ////////////////
0000 00005 .................... #device PIC18F6680
0000 00409 .................... #list
0000 00410 ....................
0000 00411 ....................
0000 00412 .................... int8 val;
0000 00413 .................... #byte val = 0xb5b
0000 00414 ....................
0000 00415 .................... #org 0x10a2, 0x1fff
0000 00416 .................... void main()
0000 00417 .................... {
10A2 6AF8 00418 CLRF FF8
10A4 9ED0 00419 BCF FD0.7
10A6 6AEA 00420 CLRF FEA
10A8 6AE9 00421 CLRF FE9
10AA 50C1 00422 MOVF FC1,W
10AC 0BC0 00423 ANDLW C0
10AE 090F 00424 IORLW 0F
10B0 6EC1 00425 MOVWF FC1
10B2 0E07 00426 MOVLW 07
10B4 6EB4 00427 MOVWF FB4
0000 00428 .................... val = 0x35;
10B6 0E35 00429 MOVLW 35
10B8 010B 00430 MOVLB B
10BA 6F5B 00431 MOVWF x5B
0000 00432 ....................
0000 00433 .................... #use fast_io(A)
0000 00434 .................... set_tris_a( 0x55 );
10BC 0E55 00435 MOVLW 55
10BE 6E92 00436 MOVWF F92
0000 00437 .................... output_a(val);
10C0 CB5B FF89 00438 MOVFF B5B,F89
0000 00439 ....................
0000 00440 .................... #use fixed_io(a_outputs=PIN_A2, PIN_A3)
0000 00441 .................... set_tris_a( 0x55 );
10C4 6E92 00442 MOVWF F92
0000 00443 .................... output_a(val);
10C6 0EF3 00444 MOVLW F3
10C8 6E92 00445 MOVWF F92
10CA CB5B FF89 00446 MOVFF B5B,F89
0000 00447 ....................
0000 00448 .................... #use standard_io(A)
0000 00449 .................... set_tris_a( 0x55 );
10CE 0E55 00450 MOVLW 55
10D0 6E92 00451 MOVWF F92
0000 00452 .................... output_a(val);
10D2 0E00 00453 MOVLW 00
10D4 6E92 00454 MOVWF F92
10D6 CB5B FF89 00455 MOVFF B5B,F89
0000 00456 ....................
0000 00457 .................... while ( 1 );
10DA D7FF 00458 BRA 10DA
0000 00459 .................... }
0000 00460 ....................
10DC 0003 0461 SLEEP
|
to get above listing, you can use ... Options -> File Formats -> Microchip ... then ... View -> C/ASM List
Best wishes |
|
|
Ttelmah Guest
|
Re: Major bug in PCH V3.203 with 18f6680???? |
Posted: Mon Jul 05, 2004 2:59 am |
|
|
apox wrote: | What's wrong with the compiler.
Here is a disassembly.
#use fast_io(A)
1089: set_tris_a( 0x55 );
0010BC 0E55 MOVLW 0x55 // THIS IS WRONG
1090: output_a(val);
0010C0 CB5B MOVFF 0xb5b, 0xf89 // This is CORRECT
1091:
1092: #use fixed_io(a_outputs=PIN_A2, PIN_A3)
1093: set_tris_a( 0x55 );
0010C4 0E55 MOVLW 0x55 // THIS IS WRONG
1094: output_a(val);
0010C8 0EF3 MOVLW 0xf3 // THIS IS WRONG
1095:
1096: #use standard_io(A)
1097: set_tris_a( 0x55 );
0010D0 0E55 MOVLW 0x55 // THIS IS WRONG
1098: output_a(val);
0010D4 0E00 MOVLW 0 // THIS IS WRONG
HELP!!! Am I doing something wrong?
-Craig Beiferman |
I suspect from the format of your display, that you are using the 'disassembly' listing in MPLAB?. If so, then in some versions, this only displays the first line of the disassembly for instructions like this. Select 'view program memory' instead. Though this does not then give the source instruction text, it'll show the missing lines of code. All the code being generated looks correct, given that the next line is missing (you can see that this is the case, by looking at the assembler addresses).
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
|