  | 
	  | 
		 
	 
	
		| View previous topic :: View next topic   | 
	 
	
	
		| Author | 
		Message | 
	 
	
		
			Justin Dobbs Guest
 
 
 
 
  
			
			
			
			
			
			
			
			
			
			
  
		  | 
		
			
				| This program works on PCW 2 but not PCML 3 | 
			 
			
				 Posted: Tue Nov 06, 2001 7:31 pm     | 
				     | 
			 
			
				
  | 
			 
			
				Has anyone experienced problems with PCML 3.055?  I have
 
the following program:
 
 
#include "devices/16f877.h"
 
#include "drivers/stdio.h"
 
#fuses NOWDT,HS,NOPROTECT
 
#use delay(clock=20000000)
 
#use fast_io(E)
 
 
int8 pe;
 
#byte pe=0x09
 
 
main()
 
{
 
        set_tris_e(0x00);
 
	output_high(PIN_E0); // oops i should have
 
			  // taken this out before
 
        while (1)
 
        {
 
                pe=0;
 
                delay_ms(1000);
 
                pe=0x07;
 
                delay_ms(1000);
 
        }
 
}
 
 
This blinks the 3 LED's attached to pins RE1-3 on and off... that is, when I compile it with PCW 2.  If I compile the exact same program in PCML (linux) 3.055 and burn the same HEX file into the PIC chip, it doesn't work.
 
 
I have tried converting the HEX file to ms-dos text format with unix2dos before sending it to the Windows box and it changes the HEX printout in PICwriter but makes no difference as far as functionality is concerned.  I am loading the hex file into PICWriter 1.1 and using a Parallax PIC programmer to burn the code into the chip on a separate Windows box, even though I am compiling on Linux.
 
 
Here are the hex files:
 
 
<a href="http://max.jrd.com/ledtest-good.hex">ledtest-good.hex</a>
 
<a href="http://max.jrd.com/ledtest-good.lst">ledtest-good.lst</a>
 
<a href="http://max.jrd.com/ledtest-bad.hex">ledtest-bad.hex</a>
 
<a href="http://max.jrd.com/ledtest-bad.lst">ledtest-bad.lst</a>
 
 
Thanks,
 
Justin Dobbs
 
Glacier Bay, Inc.
 
___________________________
 
This message was ported from CCS's old forum
 
	Original Post ID: 991 | 
			 
		  | 
	 
	
		  | 
	 
	
		
			Tomi Guest
 
 
 
 
  
			
			
			
			
			
			
			
			
			
			
  
		  | 
		
			
				| Re: This program works on PCW 2 but not PCML 3 | 
			 
			
				 Posted: Wed Nov 07, 2001 12:12 pm     | 
				     | 
			 
			
				
  | 
			 
			
				<font face="Courier New" size=-1>I don't have PCML but I took a short look on your list files and I have seen 3 differences. Any of these diffs is enough to lack your program:
 
1. The delay_ function is only a RETURN instead of the delay loops:
 
.................... #use delay(clock=20000000)
 
0004:  RETLW  00
 
2. The PIC initialisation at the start of the main() is completely missing:
 
.................... main()
 
.................... {
 
.................... 	set_tris_e(0x00);
 
0005:  MOVLW  00
 
3. At your delay_ms(1000) call at least two lines are missing:
 
0009:  MOVLW  FA
 
000A:  MOVWF  22
 
000B:  CALL   004
 
The right code:
 
0038:  MOVLW  04
 
0039:  MOVWF  21
 
003A:  MOVLW  FA
 
003B:  MOVWF  22
 
003C:  CALL   004
 
003D:  DECFSZ 21,F
 
003E:  GOTO   03A
 
Additionally Linux version uses a strange kind of bit addressing but it could be O.K.:
 
.................... 	set_tris_e(0x00);
 
0005:  MOVLW  00
 
0006:  BSF    03.5 // points instead of the colon
 
0007:  MOVWF  09
 
0008:  BCF    03.5
 
Report your bugs to CCS.
 
 
:=Has anyone experienced problems with PCML 3.055?  I have
 
:=the following program:
 
:=
 
:=#include "devices/16f877.h"
 
:=#include "drivers/stdio.h"
 
:=#fuses NOWDT,HS,NOPROTECT
 
:=#use delay(clock=20000000)
 
:=#use fast_io(E)
 
:=
 
:=int8 pe;
 
:=#byte pe=0x09
 
:=
 
:=main()
 
:={
 
:=        set_tris_e(0x00);
 
:=	output_high(PIN_E0); // oops i should have
 
:=			  // taken this out before
 
:=        while (1)
 
:=        {
 
:=                pe=0;
 
:=                delay_ms(1000);
 
:=                pe=0x07;
 
:=                delay_ms(1000);
 
:=        }
 
:=}
 
:=
 
:=This blinks the 3 LED's attached to pins RE1-3 on and off... that is, when I compile it with PCW 2.  If I compile the exact same program in PCML (linux) 3.055 and burn the same HEX file into the PIC chip, it doesn't work.
 
:=
 
:=I have tried converting the HEX file to ms-dos text format with unix2dos before sending it to the Windows box and it changes the HEX printout in PICwriter but makes no difference as far as functionality is concerned.  I am loading the hex file into PICWriter 1.1 and using a Parallax PIC programmer to burn the code into the chip on a separate Windows box, even though I am compiling on Linux.
 
:=
 
:=Here are the hex files:
 
:=
 
:=<a href="http://max.jrd.com/ledtest-good.hex">ledtest-good.hex</a>
 
:=<a href="http://max.jrd.com/ledtest-good.lst">ledtest-good.lst</a>
 
:=<a href="http://max.jrd.com/ledtest-bad.hex">ledtest-bad.hex</a>
 
:=<a href="http://max.jrd.com/ledtest-bad.lst">ledtest-bad.lst</a>
 
:=
 
:=Thanks,
 
:=Justin Dobbs
 
:=Glacier Bay, Inc.</font>
 
___________________________
 
This message was ported from CCS's old forum
 
	Original Post ID: 1001 | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
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
  
		 |