CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

Compiler Fails with PICKit3 !!!!

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
Andreas



Joined: 25 Oct 2004
Posts: 136

View user's profile Send private message

Compiler Fails with PICKit3 !!!!
PostPosted: Sun Jan 05, 2014 5:00 am     Reply with quote

Hello Friends !

I am running now the second time in a very fancy Problem and now I am able to break it down to only a few lines of code.

What is the Problem ??

I am running a simple test program for LED Display Units which get their data through SPI. It worked allready very fine for some weeks and now I am trying to extend it.

Here is now the funny Thing, when adding a specific procedure or function.

Programming this will run perfect BUT using PICKit3 the Program runs once and then stops..... When hitting the HALT i can see that the Program Loops in the reserved ICD Area !!!!!!!!!!!!!!!!

And now Comes the really strange Thing, Debugging the same program with the ICD-U64 is perfect !!! No Stops no Loops !!!!!!!!

Additionally when I start the IDE and try to connect to the PICKIT3 I get this Error msg:

PK3Err0040: The target device is not ready for debugging.
Please check your configuration bit settings and program
the device before proceeding.

BUT !!!!!! When removing the specific Code Segment it is able to debug !!!!
Code:

#include <16F886.h>
#device ICD=TRUE
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC                    //Internal RC Osc, no CLKOUT
#FUSES PUT                      //Power Up Timer
#FUSES MCLR                     //Master Clear pin enabled
#FUSES PROTECT                  //Code protected from reads
#FUSES NOCPD                    //No EE protection
#FUSES BROWNOUT                 //Reset when brownout detected
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES FCMEN                    //Fail-safe clock monitor enabled
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG                    //Debug mode for use with ICD
#FUSES NOWRT                    //Program memory not write protected
#FUSES BORV40                   //Brownout reset at 4.0V
#FUSES RESERVED                 //Used to set the reserved FUSE bits


#use delay(clock=8000000)
#use rs232(baud=38400,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=Com1,errors)
#use SPI(DO=PIN_B1,CLK=PIN_B0, MODE=0,STREAM=SWSPI,BITS=8,NOINIT)

#define SPI_MODE_0  (SPI_L_TO_H | SPI_XMIT_L_TO_H)
#define SPI_MODE_1  (SPI_L_TO_H)
#define SPI_MODE_2  (SPI_H_TO_L)
#define SPI_MODE_3  (SPI_H_TO_L | SPI_XMIT_L_TO_H)


char dispData[38];
int8 out;
int8 count;
int16 cycle;
int8 bcount;
int16 cyclepos;
int8 Bitpos;
int16 del;
int16 adc_Value;
int8 val1;
int8 val2;


void Single_LED()
{
bcount = 0;
out = 0;
output_high(PIN_C2);
for (cycle = 0; cycle < 288; cycle++)
   {
   del = 1;
    bitpos = cycle % 8;
    bcount = dispdata[bitpos];
    cyclepos = cycle / 8;

   output_low(PIN_C2);
      for (count = 0; count < 36; count++)
       {
         if (count == cyclepos) out = bcount;
           else out = 0xf0;
         SPI_xfer(SWSPI,out);
         }
         output_high(PIN_C2);
         delay_ms(del);
      }
}

void Single_Line()
{
bcount = 0;
out = 0;
output_high(PIN_C2);
for (cycle = 0; cycle <16; cycle++)
   {
   del = 100;
 
   bitpos = cycle % 8;
   bcount = dispdata[bitpos];
   val1 = 0xf0;
   val2 = 0xf0;
   if (cycle < 8) val1 = bcount;
   if (cycle >7 ) val2 = bcount;
   
   output_low(PIN_C2);
   for (count = 0; count < 36; count++)
      {
      if (count < 18)
         {
         out = val2;
         }
         else
            {
            out = val1;
            }
      if (count > 17)
         {
         out = val2;
         }
         else
            {
            out = val1;
            }
      SPI_xfer(SWSPI,out);
      }
   output_high(PIN_C2);
   delay_ms(del);
   }
}

void Clear_LED(void)
{
   output_low(PIN_C2);
   for (count = 1; count < 37; count++)
      {
      SPI_xfer(SWSPI,0xf0);
      }
   output_high(PIN_C2);
}

#int_RDA
void RDA_isr(void)
{

}

#int_TIMER1
void  TIMER1_isr(void)
{
   set_timer1(0xF860);      // 6000 20mS Timer
}


void main()
{
   setup_adc_ports(sAN0);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
   setup_timer_2(T2_DIV_BY_1,0xFF,1);
   setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
//   enable_interrupts(INT_RDA);
   enable_interrupts(INT_RTCC);
   enable_interrupts(INT_TIMER1);
   enable_interrupts(INT_TIMER2);
   setup_oscillator(OSC_8MHZ);

output_high(PIN_C3);
output_high(PIN_C5);

dispdata[0] = 0xf1;
dispdata[1] = 0xf2;
dispdata[2] = 0xf4;
dispdata[3] = 0xf8;
dispdata[4] = 0xe0;
dispdata[5] = 0xd0;
dispdata[6] = 0xb0;
dispdata[7] = 0x70;


while(true)
{
output_high(PIN_B3);
delay_ms(100);
output_low(PIN_B3);
delay_ms(100);
Clear_LED();
Single_LED();
delay_ms(100);
Single_Line();

}
}



Now when I uncomment the line Single_Line(); then the program runs perfect is also able to be debugged !

When Using this line I can set the breakpoint to the line
output_high(PIN_B3);

Debugger stops there and now the funny Thing ::::: With pressing F7 the Cursor moves from line to line WITHOUT executing anything !!!!


Do You Specialists have any idea whats going wrong in here ??

Please be aware the same code runs out of CCS IDE without Problems !!


Any help is very very appreciated !!

best regards out of Vienna
Andreas
temtronic



Joined: 01 Jul 2010
Posts: 9221
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Sun Jan 05, 2014 6:42 am     Reply with quote

comment: I see this...
#FUSES NODEBUG //Debug mode for use with ICD
...

yet you say you're using 'debug'( assuming MPLAB ). So there is a conflict.

While I've never used 'debug' to test code( I prefer 'real world' testing), I do know that in MPLAB the code 'compiled' using 'debug' is NOT the same as 'release' in the 'Build Configuration' menu.
Also in MPLAB, you can select an option to have either MPLAB or the compiled code configure the 'fuses'.

hth
jay
Andreas



Joined: 25 Oct 2004
Posts: 136

View user's profile Send private message

PostPosted: Mon Jan 06, 2014 3:09 am     Reply with quote

Hello temtronic

Thanks for looking at my post.

Some additions now:

1. The NODEBUG I removed because some error message told me so.

2. My REAL Problem is, that having everything set the same it works with a code Segment commented and doesn't work with this Segment active !!!!!!!

3. The same code compiled with CCS IDE wrongs in either case !!!!!

How can I send You sample lst files ?

I have now 2 files one which is running with PICKit3 one is not !!

best regards

Andreas
Andreas



Joined: 25 Oct 2004
Posts: 136

View user's profile Send private message

Again
PostPosted: Mon Jan 06, 2014 3:13 am     Reply with quote

Here are two lst Files one is Debugging one not, please tell me the difference !

Working :
Code:

CCS PCM C Compiler, Version 5.012, xxxx               06-Jan-14 09:55

               Filename:   C:\Servo_Regler_x\StaticDisplayText.lst

               ROM used:   382 words (5%)
                           Largest free fragment is 2048
               RAM used:   66 (18%) at main() level
                           71 (20%) worst case
               Stack used: 3 locations (2 in main + 1 for interrupts)
               Stack size: 7

*
0000:  NOP
0001:  MOVLW  00
0002:  MOVWF  0A
0003:  GOTO   0F3
0004:  MOVWF  7F
0005:  SWAPF  03,W
0006:  CLRF   03
0007:  MOVWF  21
0008:  MOVF   0A,W
0009:  MOVWF  20
000A:  CLRF   0A
000B:  MOVF   04,W
000C:  MOVWF  22
000D:  MOVF   77,W
000E:  MOVWF  23
000F:  MOVF   78,W
0010:  MOVWF  24
0011:  MOVF   79,W
0012:  MOVWF  25
0013:  MOVF   7A,W
0014:  MOVWF  26
0015:  BCF    03.7
0016:  BCF    03.5
0017:  MOVLW  8C
0018:  MOVWF  04
0019:  BTFSS  00.5
001A:  GOTO   01D
001B:  BTFSC  0C.5
001C:  GOTO   034
001D:  MOVLW  8C
001E:  MOVWF  04
001F:  BTFSS  00.0
0020:  GOTO   023
0021:  BTFSC  0C.0
0022:  GOTO   037
0023:  MOVF   22,W
0024:  MOVWF  04
0025:  MOVF   23,W
0026:  MOVWF  77
0027:  MOVF   24,W
0028:  MOVWF  78
0029:  MOVF   25,W
002A:  MOVWF  79
002B:  MOVF   26,W
002C:  MOVWF  7A
002D:  MOVF   20,W
002E:  MOVWF  0A
002F:  SWAPF  21,W
0030:  MOVWF  03
0031:  SWAPF  7F,F
0032:  SWAPF  7F,W
0033:  RETFIE
0034:  BCF    0A.3
0035:  BCF    0A.4
0036:  GOTO   03A
0037:  BCF    0A.3
0038:  BCF    0A.4
0039:  GOTO   03E
.................... #include <16F886.h>
.................... ///////////// Standard Header file for the PIC16F886 device ////////////////
.................... ///////////////////////////////////////////////////////////////////////////
.................... ////        (C) Copyright 1996, 2013 Custom Computer Services          ////
.................... //// This source code may only be used by licensed users of the CCS C  ////
.................... //// compiler.  This source code may only be distributed to other      ////
.................... //// licensed users of the CCS C compiler.  No other use, reproduction ////
.................... //// or distribution is permitted without written permission.          ////
.................... //// Derivative programs created using this software in object code    ////
.................... //// form are not restricted in any way.                               ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... #device PIC16F886
.................... 
.................... #list
.................... 
.................... #device ICD=TRUE
.................... #device adc=8
.................... 
.................... #FUSES NOWDT                    //No Watch Dog Timer
.................... #FUSES INTRC                    //Internal RC Osc, no CLKOUT
.................... #FUSES PUT                      //Power Up Timer
.................... #FUSES MCLR                     //Master Clear pin enabled
.................... #FUSES PROTECT                  //Code protected from reads
.................... #FUSES NOCPD                    //No EE protection
.................... #FUSES BROWNOUT                 //Reset when brownout detected
.................... #FUSES IESO                     //Internal External Switch Over mode enabled
.................... #FUSES FCMEN                    //Fail-safe clock monitor enabled
.................... #FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
.................... #FUSES NODEBUG                    //Debug mode for use with ICD
.................... #FUSES NOWRT                    //Program memory not write protected
.................... #FUSES BORV40                   //Brownout reset at 4.0V
.................... #FUSES RESERVED                 //Used to set the reserved FUSE bits
.................... 
.................... 
.................... #use delay(clock=8000000)
*
0047:  MOVLW  5E
0048:  MOVWF  04
0049:  BCF    03.7
004A:  MOVF   00,W
004B:  BTFSC  03.2
004C:  GOTO   05A
004D:  MOVLW  02
004E:  MOVWF  78
004F:  CLRF   77
0050:  DECFSZ 77,F
0051:  GOTO   050
0052:  DECFSZ 78,F
0053:  GOTO   04F
0054:  MOVLW  97
0055:  MOVWF  77
0056:  DECFSZ 77,F
0057:  GOTO   056
0058:  DECFSZ 00,F
0059:  GOTO   04D
005A:  RETURN
.................... #use rs232(baud=38400,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=Com1,errors)
.................... #use SPI(DO=PIN_B1,CLK=PIN_B0, MODE=0,STREAM=SWSPI,BITS=8,NOINIT)
005B:  MOVF   5E,W
005C:  SUBLW  08
005D:  BTFSC  03.2
005E:  GOTO   063
005F:  MOVWF  5F
0060:  RLF    5D,F
0061:  DECFSZ 5F,F
0062:  GOTO   060
0063:  BSF    03.5
0064:  BCF    06.1
0065:  BCF    06.0
0066:  BCF    03.5
0067:  BCF    06.0
0068:  MOVF   5E,W
0069:  MOVWF  5F
006A:  BTFSS  5D.7
006B:  BCF    06.1
006C:  BTFSC  5D.7
006D:  BSF    06.1
006E:  RLF    5D,F
006F:  BSF    06.0
0070:  GOTO   071
0071:  BCF    06.0
0072:  DECFSZ 5F,F
0073:  GOTO   06A
0074:  RETURN
.................... 
.................... #define SPI_MODE_0  (SPI_L_TO_H | SPI_XMIT_L_TO_H) 
.................... #define SPI_MODE_1  (SPI_L_TO_H) 
.................... #define SPI_MODE_2  (SPI_H_TO_L) 
.................... #define SPI_MODE_3  (SPI_H_TO_L | SPI_XMIT_L_TO_H) 
.................... 
.................... 
.................... char dispData[38];
.................... int8 out;
.................... int8 count;
.................... int16 cycle;
.................... int8 bcount;
.................... int16 cyclepos;
.................... int8 Bitpos;
.................... int16 del;
.................... int16 adc_Value;
.................... int8 val1;
.................... int8 val2;
.................... 
.................... 
.................... void Single_LED()
.................... {
.................... bcount = 0;
*
0091:  CLRF   52
.................... out = 0;
0092:  CLRF   4E
.................... output_high(PIN_C2); 
0093:  BCF    5C.2
0094:  MOVF   5C,W
0095:  BSF    03.5
0096:  MOVWF  07
0097:  BCF    03.5
0098:  BSF    07.2
.................... for (cycle = 0; cycle < 288; cycle++)
0099:  CLRF   51
009A:  CLRF   50
009B:  MOVF   51,W
009C:  SUBLW  01
009D:  BTFSS  03.0
009E:  GOTO   0F0
009F:  BTFSS  03.2
00A0:  GOTO   0A5
00A1:  MOVF   50,W
00A2:  SUBLW  1F
00A3:  BTFSS  03.0
00A4:  GOTO   0F0
....................    {
....................    del = 1;
00A5:  CLRF   57
00A6:  MOVLW  01
00A7:  MOVWF  56
....................     bitpos = cycle % 8;
00A8:  MOVF   50,W
00A9:  ANDLW  07
00AA:  MOVWF  55
....................     bcount = dispdata[bitpos]; 
00AB:  MOVLW  28
00AC:  ADDWF  55,W
00AD:  MOVWF  04
00AE:  BCF    03.7
00AF:  MOVF   00,W
00B0:  MOVWF  52
....................     cyclepos = cycle / 8;
00B1:  RRF    51,W
00B2:  MOVWF  54
00B3:  RRF    50,W
00B4:  MOVWF  53
00B5:  RRF    54,F
00B6:  RRF    53,F
00B7:  RRF    54,F
00B8:  RRF    53,F
00B9:  MOVLW  1F
00BA:  ANDWF  54,F
.................... 
....................    output_low(PIN_C2);
00BB:  BCF    5C.2
00BC:  MOVF   5C,W
00BD:  BSF    03.5
00BE:  MOVWF  07
00BF:  BCF    03.5
00C0:  BCF    07.2
....................       for (count = 0; count < 36; count++)
00C1:  CLRF   4F
00C2:  MOVF   4F,W
00C3:  SUBLW  23
00C4:  BTFSS  03.0
00C5:  GOTO   0D9
....................        {
....................          if (count == cyclepos) out = bcount;
00C6:  MOVF   53,W
00C7:  SUBWF  4F,W
00C8:  BTFSS  03.2
00C9:  GOTO   0D0
00CA:  MOVF   54,F
00CB:  BTFSS  03.2
00CC:  GOTO   0D0
00CD:  MOVF   52,W
00CE:  MOVWF  4E
00CF:  GOTO   0D2
....................            else out = 0xf0;
00D0:  MOVLW  F0
00D1:  MOVWF  4E
....................          SPI_xfer(SWSPI,out);
00D2:  MOVF   4E,W
00D3:  MOVWF  5D
00D4:  MOVLW  08
00D5:  MOVWF  5E
00D6:  CALL   05B
00D7:  INCF   4F,F
00D8:  GOTO   0C2
....................          }
....................          output_high(PIN_C2); 
00D9:  BCF    5C.2
00DA:  MOVF   5C,W
00DB:  BSF    03.5
00DC:  MOVWF  07
00DD:  BCF    03.5
00DE:  BSF    07.2
....................          delay_ms(del);
00DF:  MOVF   57,W
00E0:  MOVWF  5D
00E1:  INCF   5D,F
00E2:  DECF   5D,F
00E3:  BTFSC  03.2
00E4:  GOTO   0E9
00E5:  MOVLW  FF
00E6:  MOVWF  5E
00E7:  CALL   047
00E8:  GOTO   0E2
00E9:  MOVF   56,W
00EA:  MOVWF  5E
00EB:  CALL   047
00EC:  INCF   50,F
00ED:  BTFSC  03.2
00EE:  INCF   51,F
00EF:  GOTO   09B
....................       }
00F0:  BCF    0A.3
00F1:  BCF    0A.4
00F2:  GOTO   179 (RETURN)
.................... }
.................... 
.................... void Single_Line()
.................... {
.................... bcount = 0;
.................... out = 0;
.................... output_high(PIN_C2); 
.................... for (cycle = 0; cycle <16; cycle++)
....................    {
....................    del = 100;
....................   
....................    bitpos = cycle % 8;
....................    bcount = dispdata[bitpos]; 
....................    val1 = 0xf0;
....................    val2 = 0xf0;
....................    if (cycle < 8) val1 = bcount;
....................    if (cycle >7 ) val2 = bcount;
....................     
....................    output_low(PIN_C2);
....................    for (count = 0; count < 36; count++)
....................       {
....................       if (count < 18) 
....................          {
....................          out = val2;
....................          }
....................          else
....................             {
....................             out = val1;
....................             }
....................       if (count > 17) 
....................          {
....................          out = val2;
....................          }
....................          else
....................             {
....................             out = val1;
....................             }
....................       SPI_xfer(SWSPI,out);
....................       }
....................    output_high(PIN_C2); 
....................    delay_ms(del);
....................    }
.................... }
.................... 
.................... void Clear_LED(void)
.................... {
....................    output_low(PIN_C2);
*
0075:  BCF    5C.2
0076:  MOVF   5C,W
0077:  BSF    03.5
0078:  MOVWF  07
0079:  BCF    03.5
007A:  BCF    07.2
....................    for (count = 1; count < 37; count++)
007B:  MOVLW  01
007C:  MOVWF  4F
007D:  MOVF   4F,W
007E:  SUBLW  24
007F:  BTFSS  03.0
0080:  GOTO   088
....................       {
....................       SPI_xfer(SWSPI,0xf0);
0081:  MOVLW  F0
0082:  MOVWF  5D
0083:  MOVLW  08
0084:  MOVWF  5E
0085:  CALL   05B
0086:  INCF   4F,F
0087:  GOTO   07D
....................       }
....................    output_high(PIN_C2); 
0088:  BCF    5C.2
0089:  MOVF   5C,W
008A:  BSF    03.5
008B:  MOVWF  07
008C:  BCF    03.5
008D:  BSF    07.2
008E:  BCF    0A.3
008F:  BCF    0A.4
0090:  GOTO   178 (RETURN)
.................... }
.................... 
.................... #int_RDA
.................... void RDA_isr(void)
.................... {
.................... 
.................... }
.................... 
*
003A:  BCF    0C.5
003B:  BCF    0A.3
003C:  BCF    0A.4
003D:  GOTO   023
.................... #int_TIMER1
.................... void  TIMER1_isr(void) 
.................... {
....................    set_timer1(0xF860);      // 6000 20mS Timer 
003E:  CLRF   0E
003F:  MOVLW  F8
0040:  MOVWF  0F
0041:  MOVLW  60
0042:  MOVWF  0E
0043:  BCF    0C.0
0044:  BCF    0A.3
0045:  BCF    0A.4
0046:  GOTO   023
.................... }
.................... 
.................... 
.................... void main()
*
00F3:  MOVF   03,W
00F4:  ANDLW  1F
00F5:  MOVWF  03
00F6:  MOVLW  71
00F7:  BSF    03.5
00F8:  MOVWF  0F
00F9:  MOVF   0F,W
00FA:  BCF    03.5
00FB:  CLRF   27
00FC:  BSF    03.5
00FD:  BSF    03.6
00FE:  BCF    07.3
00FF:  MOVLW  0C
0100:  BCF    03.6
0101:  MOVWF  19
0102:  MOVLW  A6
0103:  MOVWF  18
0104:  MOVLW  90
0105:  BCF    03.5
0106:  MOVWF  18
0107:  BSF    03.5
0108:  BCF    06.1
0109:  BCF    06.0
010A:  BCF    03.5
010B:  BCF    06.0
010C:  MOVLW  FF
010D:  MOVWF  5C
010E:  BSF    03.5
010F:  BSF    03.6
0110:  MOVF   09,W
0111:  ANDLW  C0
0112:  MOVWF  09
0113:  BCF    03.6
0114:  BCF    1F.4
0115:  BCF    1F.5
0116:  MOVLW  00
0117:  BSF    03.6
0118:  MOVWF  08
0119:  BCF    03.5
011A:  CLRF   07
011B:  CLRF   08
011C:  CLRF   09
011D:  BCF    03.7
.................... {
....................    setup_adc_ports(sAN0);
011E:  BSF    03.5
011F:  MOVF   09,W
0120:  ANDLW  C0
0121:  MOVWF  09
0122:  BCF    03.6
0123:  BCF    1F.4
0124:  BCF    1F.5
0125:  MOVLW  01
0126:  BSF    03.6
0127:  MOVWF  08
....................    setup_adc(ADC_CLOCK_DIV_2);
0128:  BCF    03.5
0129:  BCF    03.6
012A:  BCF    1F.6
012B:  BCF    1F.7
012C:  BSF    03.5
012D:  BCF    1F.7
012E:  BCF    03.5
012F:  BSF    1F.0
....................    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
0130:  BSF    03.5
0131:  MOVF   01,W
0132:  ANDLW  C0
0133:  IORLW  07
0134:  MOVWF  01
....................    setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
0135:  MOVLW  05
0136:  BCF    03.5
0137:  MOVWF  10
....................    setup_timer_2(T2_DIV_BY_1,0xFF,1);
0138:  MOVLW  00
0139:  MOVWF  78
013A:  IORLW  04
013B:  MOVWF  12
013C:  MOVLW  FF
013D:  BSF    03.5
013E:  MOVWF  12
....................    setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
013F:  BCF    03.5
0140:  BSF    03.6
0141:  CLRF   07
0142:  CLRF   08
0143:  CLRF   09
.................... //   enable_interrupts(INT_RDA);
....................    enable_interrupts(INT_RTCC);
0144:  BCF    03.6
0145:  BSF    0B.5
....................    enable_interrupts(INT_TIMER1);
0146:  BSF    03.5
0147:  BSF    0C.0
....................    enable_interrupts(INT_TIMER2);
0148:  BSF    0C.1
....................    setup_oscillator(OSC_8MHZ);
0149:  MOVLW  71
014A:  MOVWF  0F
014B:  MOVF   0F,W
.................... 
.................... output_high(PIN_C3); 
014C:  BCF    03.5
014D:  BCF    5C.3
014E:  MOVF   5C,W
014F:  BSF    03.5
0150:  MOVWF  07
0151:  BCF    03.5
0152:  BSF    07.3
.................... output_high(PIN_C5); 
0153:  BCF    5C.5
0154:  MOVF   5C,W
0155:  BSF    03.5
0156:  MOVWF  07
0157:  BCF    03.5
0158:  BSF    07.5
.................... 
.................... dispdata[0] = 0xf1;
0159:  MOVLW  F1
015A:  MOVWF  28
.................... dispdata[1] = 0xf2;
015B:  MOVLW  F2
015C:  MOVWF  29
.................... dispdata[2] = 0xf4;
015D:  MOVLW  F4
015E:  MOVWF  2A
.................... dispdata[3] = 0xf8;
015F:  MOVLW  F8
0160:  MOVWF  2B
.................... dispdata[4] = 0xe0;
0161:  MOVLW  E0
0162:  MOVWF  2C
.................... dispdata[5] = 0xd0;
0163:  MOVLW  D0
0164:  MOVWF  2D
.................... dispdata[6] = 0xb0;
0165:  MOVLW  B0
0166:  MOVWF  2E
.................... dispdata[7] = 0x70;
0167:  MOVLW  70
0168:  MOVWF  2F
.................... 
.................... 
.................... while(true)
.................... {
.................... output_high(PIN_B3); 
0169:  BSF    03.5
016A:  BCF    06.3
016B:  BCF    03.5
016C:  BSF    06.3
.................... delay_ms(100);
016D:  MOVLW  64
016E:  MOVWF  5E
016F:  CALL   047
.................... output_low(PIN_B3); 
0170:  BSF    03.5
0171:  BCF    06.3
0172:  BCF    03.5
0173:  BCF    06.3
.................... delay_ms(100);
0174:  MOVLW  64
0175:  MOVWF  5E
0176:  CALL   047
.................... Clear_LED();
0177:  GOTO   075
.................... Single_LED();
0178:  GOTO   091
.................... delay_ms(100);
0179:  MOVLW  64
017A:  MOVWF  5E
017B:  CALL   047
017C:  GOTO   169
.................... //Single_Line();
.................... 
.................... }
.................... }
017D:  GOTO   17D

Configuration Fuses:
   Word  1: 0CF5   INTRC NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP DEBUG
   Word  2: 3FFF   BORV40 NOWRT

   Some fuses have been forced to be compatible with the ICD debugger.


NOT working:
Code:

CCS PCM C Compiler, Version 5.012, xxxx             06-Jan-14 09:56

               Filename:   C:\Servo_Regler_x\StaticDisplayText.lst

               ROM used:   495 words (6%)
                           Largest free fragment is 2048
               RAM used:   66 (18%) at main() level
                           71 (20%) worst case
               Stack used: 3 locations (2 in main + 1 for interrupts)
               Stack size: 7

*
0000:  NOP
0001:  MOVLW  01
0002:  MOVWF  0A
0003:  GOTO   163
0004:  MOVWF  7F
0005:  SWAPF  03,W
0006:  CLRF   03
0007:  MOVWF  21
0008:  MOVF   0A,W
0009:  MOVWF  20
000A:  CLRF   0A
000B:  MOVF   04,W
000C:  MOVWF  22
000D:  MOVF   77,W
000E:  MOVWF  23
000F:  MOVF   78,W
0010:  MOVWF  24
0011:  MOVF   79,W
0012:  MOVWF  25
0013:  MOVF   7A,W
0014:  MOVWF  26
0015:  BCF    03.7
0016:  BCF    03.5
0017:  MOVLW  8C
0018:  MOVWF  04
0019:  BTFSS  00.5
001A:  GOTO   01D
001B:  BTFSC  0C.5
001C:  GOTO   034
001D:  MOVLW  8C
001E:  MOVWF  04
001F:  BTFSS  00.0
0020:  GOTO   023
0021:  BTFSC  0C.0
0022:  GOTO   037
0023:  MOVF   22,W
0024:  MOVWF  04
0025:  MOVF   23,W
0026:  MOVWF  77
0027:  MOVF   24,W
0028:  MOVWF  78
0029:  MOVF   25,W
002A:  MOVWF  79
002B:  MOVF   26,W
002C:  MOVWF  7A
002D:  MOVF   20,W
002E:  MOVWF  0A
002F:  SWAPF  21,W
0030:  MOVWF  03
0031:  SWAPF  7F,F
0032:  SWAPF  7F,W
0033:  RETFIE
0034:  BCF    0A.3
0035:  BCF    0A.4
0036:  GOTO   03A
0037:  BCF    0A.3
0038:  BCF    0A.4
0039:  GOTO   03E
.................... #include <16F886.h>
.................... ///////////// Standard Header file for the PIC16F886 device ////////////////
.................... ///////////////////////////////////////////////////////////////////////////
.................... ////        (C) Copyright 1996, 2013 Custom Computer Services          ////
.................... //// This source code may only be used by licensed users of the CCS C  ////
.................... //// compiler.  This source code may only be distributed to other      ////
.................... //// licensed users of the CCS C compiler.  No other use, reproduction ////
.................... //// or distribution is permitted without written permission.          ////
.................... //// Derivative programs created using this software in object code    ////
.................... //// form are not restricted in any way.                               ////
.................... ///////////////////////////////////////////////////////////////////////////
.................... #device PIC16F886
.................... 
.................... #list
.................... 
.................... #device ICD=TRUE
.................... #device adc=8
.................... 
.................... #FUSES NOWDT                    //No Watch Dog Timer
.................... #FUSES INTRC                    //Internal RC Osc, no CLKOUT
.................... #FUSES PUT                      //Power Up Timer
.................... #FUSES MCLR                     //Master Clear pin enabled
.................... #FUSES PROTECT                  //Code protected from reads
.................... #FUSES NOCPD                    //No EE protection
.................... #FUSES BROWNOUT                 //Reset when brownout detected
.................... #FUSES IESO                     //Internal External Switch Over mode enabled
.................... #FUSES FCMEN                    //Fail-safe clock monitor enabled
.................... #FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
.................... #FUSES NODEBUG                    //Debug mode for use with ICD
.................... #FUSES NOWRT                    //Program memory not write protected
.................... #FUSES BORV40                   //Brownout reset at 4.0V
.................... #FUSES RESERVED                 //Used to set the reserved FUSE bits
.................... 
.................... 
.................... #use delay(clock=8000000)
*
0047:  MOVLW  5E
0048:  MOVWF  04
0049:  BCF    03.7
004A:  MOVF   00,W
004B:  BTFSC  03.2
004C:  GOTO   05A
004D:  MOVLW  02
004E:  MOVWF  78
004F:  CLRF   77
0050:  DECFSZ 77,F
0051:  GOTO   050
0052:  DECFSZ 78,F
0053:  GOTO   04F
0054:  MOVLW  97
0055:  MOVWF  77
0056:  DECFSZ 77,F
0057:  GOTO   056
0058:  DECFSZ 00,F
0059:  GOTO   04D
005A:  RETURN
.................... #use rs232(baud=38400,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=Com1,errors)
.................... #use SPI(DO=PIN_B1,CLK=PIN_B0, MODE=0,STREAM=SWSPI,BITS=8,NOINIT)
005B:  MOVF   5E,W
005C:  SUBLW  08
005D:  BTFSC  03.2
005E:  GOTO   063
005F:  MOVWF  5F
0060:  RLF    5D,F
0061:  DECFSZ 5F,F
0062:  GOTO   060
0063:  BSF    03.5
0064:  BCF    06.1
0065:  BCF    06.0
0066:  BCF    03.5
0067:  BCF    06.0
0068:  MOVF   5E,W
0069:  MOVWF  5F
006A:  BTFSS  5D.7
006B:  BCF    06.1
006C:  BTFSC  5D.7
006D:  BSF    06.1
006E:  RLF    5D,F
006F:  BSF    06.0
0070:  GOTO   071
0071:  BCF    06.0
0072:  DECFSZ 5F,F
0073:  GOTO   06A
0074:  RETURN
.................... 
.................... #define SPI_MODE_0  (SPI_L_TO_H | SPI_XMIT_L_TO_H) 
.................... #define SPI_MODE_1  (SPI_L_TO_H) 
.................... #define SPI_MODE_2  (SPI_H_TO_L) 
.................... #define SPI_MODE_3  (SPI_H_TO_L | SPI_XMIT_L_TO_H) 
.................... 
.................... 
.................... char dispData[38];
.................... int8 out;
.................... int8 count;
.................... int16 cycle;
.................... int8 bcount;
.................... int16 cyclepos;
.................... int8 Bitpos;
.................... int16 del;
.................... int16 adc_Value;
.................... int8 val1;
.................... int8 val2;
.................... 
.................... 
.................... void Single_LED()
.................... {
.................... bcount = 0;
*
0091:  CLRF   52
.................... out = 0;
0092:  CLRF   4E
.................... output_high(PIN_C2); 
0093:  BCF    5C.2
0094:  MOVF   5C,W
0095:  BSF    03.5
0096:  MOVWF  07
0097:  BCF    03.5
0098:  BSF    07.2
.................... for (cycle = 0; cycle < 288; cycle++)
0099:  CLRF   51
009A:  CLRF   50
009B:  MOVF   51,W
009C:  SUBLW  01
009D:  BTFSS  03.0
009E:  GOTO   0F0
009F:  BTFSS  03.2
00A0:  GOTO   0A5
00A1:  MOVF   50,W
00A2:  SUBLW  1F
00A3:  BTFSS  03.0
00A4:  GOTO   0F0
....................    {
....................    del = 1;
00A5:  CLRF   57
00A6:  MOVLW  01
00A7:  MOVWF  56
....................     bitpos = cycle % 8;
00A8:  MOVF   50,W
00A9:  ANDLW  07
00AA:  MOVWF  55
....................     bcount = dispdata[bitpos]; 
00AB:  MOVLW  28
00AC:  ADDWF  55,W
00AD:  MOVWF  04
00AE:  BCF    03.7
00AF:  MOVF   00,W
00B0:  MOVWF  52
....................     cyclepos = cycle / 8;
00B1:  RRF    51,W
00B2:  MOVWF  54
00B3:  RRF    50,W
00B4:  MOVWF  53
00B5:  RRF    54,F
00B6:  RRF    53,F
00B7:  RRF    54,F
00B8:  RRF    53,F
00B9:  MOVLW  1F
00BA:  ANDWF  54,F
.................... 
....................    output_low(PIN_C2);
00BB:  BCF    5C.2
00BC:  MOVF   5C,W
00BD:  BSF    03.5
00BE:  MOVWF  07
00BF:  BCF    03.5
00C0:  BCF    07.2
....................       for (count = 0; count < 36; count++)
00C1:  CLRF   4F
00C2:  MOVF   4F,W
00C3:  SUBLW  23
00C4:  BTFSS  03.0
00C5:  GOTO   0D9
....................        {
....................          if (count == cyclepos) out = bcount;
00C6:  MOVF   53,W
00C7:  SUBWF  4F,W
00C8:  BTFSS  03.2
00C9:  GOTO   0D0
00CA:  MOVF   54,F
00CB:  BTFSS  03.2
00CC:  GOTO   0D0
00CD:  MOVF   52,W
00CE:  MOVWF  4E
00CF:  GOTO   0D2
....................            else out = 0xf0;
00D0:  MOVLW  F0
00D1:  MOVWF  4E
....................          SPI_xfer(SWSPI,out);
00D2:  MOVF   4E,W
00D3:  MOVWF  5D
00D4:  MOVLW  08
00D5:  MOVWF  5E
00D6:  CALL   05B
00D7:  INCF   4F,F
00D8:  GOTO   0C2
....................          }
....................          output_high(PIN_C2); 
00D9:  BCF    5C.2
00DA:  MOVF   5C,W
00DB:  BSF    03.5
00DC:  MOVWF  07
00DD:  BCF    03.5
00DE:  BSF    07.2
....................          delay_ms(del);
00DF:  MOVF   57,W
00E0:  MOVWF  5D
00E1:  INCF   5D,F
00E2:  DECF   5D,F
00E3:  BTFSC  03.2
00E4:  GOTO   0E9
00E5:  MOVLW  FF
00E6:  MOVWF  5E
00E7:  CALL   047
00E8:  GOTO   0E2
00E9:  MOVF   56,W
00EA:  MOVWF  5E
00EB:  CALL   047
00EC:  INCF   50,F
00ED:  BTFSC  03.2
00EE:  INCF   51,F
00EF:  GOTO   09B
....................       }
00F0:  BCF    0A.3
00F1:  BCF    0A.4
00F2:  GOTO   1E9 (RETURN)
.................... }
.................... 
.................... void Single_Line()
.................... {
.................... bcount = 0;
00F3:  CLRF   52
.................... out = 0;
00F4:  CLRF   4E
.................... output_high(PIN_C2); 
00F5:  BCF    5C.2
00F6:  MOVF   5C,W
00F7:  BSF    03.5
00F8:  MOVWF  07
00F9:  BCF    03.5
00FA:  BSF    07.2
.................... for (cycle = 0; cycle <16; cycle++)
00FB:  CLRF   51
00FC:  CLRF   50
00FD:  MOVF   51,F
00FE:  BTFSS  03.2
00FF:  GOTO   160
0100:  MOVF   50,W
0101:  SUBLW  0F
0102:  BTFSS  03.0
0103:  GOTO   160
....................    {
....................    del = 100;
0104:  CLRF   57
0105:  MOVLW  64
0106:  MOVWF  56
....................   
....................    bitpos = cycle % 8;
0107:  MOVF   50,W
0108:  ANDLW  07
0109:  MOVWF  55
....................    bcount = dispdata[bitpos]; 
010A:  MOVLW  28
010B:  ADDWF  55,W
010C:  MOVWF  04
010D:  BCF    03.7
010E:  MOVF   00,W
010F:  MOVWF  52
....................    val1 = 0xf0;
0110:  MOVLW  F0
0111:  MOVWF  5A
....................    val2 = 0xf0;
0112:  MOVWF  5B
....................    if (cycle < 8) val1 = bcount;
0113:  MOVF   51,F
0114:  BTFSS  03.2
0115:  GOTO   11C
0116:  MOVF   50,W
0117:  SUBLW  07
0118:  BTFSS  03.0
0119:  GOTO   11C
011A:  MOVF   52,W
011B:  MOVWF  5A
....................    if (cycle >7 ) val2 = bcount;
011C:  MOVF   51,F
011D:  BTFSS  03.2
011E:  GOTO   123
011F:  MOVF   50,W
0120:  SUBLW  07
0121:  BTFSC  03.0
0122:  GOTO   125
0123:  MOVF   52,W
0124:  MOVWF  5B
....................     
....................    output_low(PIN_C2);
0125:  BCF    5C.2
0126:  MOVF   5C,W
0127:  BSF    03.5
0128:  MOVWF  07
0129:  BCF    03.5
012A:  BCF    07.2
....................    for (count = 0; count < 36; count++)
012B:  CLRF   4F
012C:  MOVF   4F,W
012D:  SUBLW  23
012E:  BTFSS  03.0
012F:  GOTO   149
....................       {
....................       if (count < 18) 
0130:  MOVF   4F,W
0131:  SUBLW  11
0132:  BTFSS  03.0
0133:  GOTO   137
....................          {
....................          out = val2;
0134:  MOVF   5B,W
0135:  MOVWF  4E
....................          }
0136:  GOTO   139
....................          else
....................             {
....................             out = val1;
0137:  MOVF   5A,W
0138:  MOVWF  4E
....................             }
....................       if (count > 17) 
0139:  MOVF   4F,W
013A:  SUBLW  11
013B:  BTFSC  03.0
013C:  GOTO   140
....................          {
....................          out = val2;
013D:  MOVF   5B,W
013E:  MOVWF  4E
....................          }
013F:  GOTO   142
....................          else
....................             {
....................             out = val1;
0140:  MOVF   5A,W
0141:  MOVWF  4E
....................             }
....................       SPI_xfer(SWSPI,out);
0142:  MOVF   4E,W
0143:  MOVWF  5D
0144:  MOVLW  08
0145:  MOVWF  5E
0146:  CALL   05B
0147:  INCF   4F,F
0148:  GOTO   12C
....................       }
....................    output_high(PIN_C2); 
0149:  BCF    5C.2
014A:  MOVF   5C,W
014B:  BSF    03.5
014C:  MOVWF  07
014D:  BCF    03.5
014E:  BSF    07.2
....................    delay_ms(del);
014F:  MOVF   57,W
0150:  MOVWF  5D
0151:  INCF   5D,F
0152:  DECF   5D,F
0153:  BTFSC  03.2
0154:  GOTO   159
0155:  MOVLW  FF
0156:  MOVWF  5E
0157:  CALL   047
0158:  GOTO   152
0159:  MOVF   56,W
015A:  MOVWF  5E
015B:  CALL   047
015C:  INCF   50,F
015D:  BTFSC  03.2
015E:  INCF   51,F
015F:  GOTO   0FD
....................    }
0160:  BCF    0A.3
0161:  BCF    0A.4
0162:  GOTO   1ED (RETURN)
.................... }
.................... 
.................... void Clear_LED(void)
.................... {
....................    output_low(PIN_C2);
*
0075:  BCF    5C.2
0076:  MOVF   5C,W
0077:  BSF    03.5
0078:  MOVWF  07
0079:  BCF    03.5
007A:  BCF    07.2
....................    for (count = 1; count < 37; count++)
007B:  MOVLW  01
007C:  MOVWF  4F
007D:  MOVF   4F,W
007E:  SUBLW  24
007F:  BTFSS  03.0
0080:  GOTO   088
....................       {
....................       SPI_xfer(SWSPI,0xf0);
0081:  MOVLW  F0
0082:  MOVWF  5D
0083:  MOVLW  08
0084:  MOVWF  5E
0085:  CALL   05B
0086:  INCF   4F,F
0087:  GOTO   07D
....................       }
....................    output_high(PIN_C2); 
0088:  BCF    5C.2
0089:  MOVF   5C,W
008A:  BSF    03.5
008B:  MOVWF  07
008C:  BCF    03.5
008D:  BSF    07.2
008E:  BCF    0A.3
008F:  BCF    0A.4
0090:  GOTO   1E8 (RETURN)
.................... }
.................... 
.................... #int_RDA
.................... void RDA_isr(void)
.................... {
.................... 
.................... }
.................... 
*
003A:  BCF    0C.5
003B:  BCF    0A.3
003C:  BCF    0A.4
003D:  GOTO   023
.................... #int_TIMER1
.................... void  TIMER1_isr(void) 
.................... {
....................    set_timer1(0xF860);      // 6000 20mS Timer 
003E:  CLRF   0E
003F:  MOVLW  F8
0040:  MOVWF  0F
0041:  MOVLW  60
0042:  MOVWF  0E
0043:  BCF    0C.0
0044:  BCF    0A.3
0045:  BCF    0A.4
0046:  GOTO   023
.................... }
.................... 
.................... 
.................... void main()
*
0163:  MOVF   03,W
0164:  ANDLW  1F
0165:  MOVWF  03
0166:  MOVLW  71
0167:  BSF    03.5
0168:  MOVWF  0F
0169:  MOVF   0F,W
016A:  BCF    03.5
016B:  CLRF   27
016C:  BSF    03.5
016D:  BSF    03.6
016E:  BCF    07.3
016F:  MOVLW  0C
0170:  BCF    03.6
0171:  MOVWF  19
0172:  MOVLW  A6
0173:  MOVWF  18
0174:  MOVLW  90
0175:  BCF    03.5
0176:  MOVWF  18
0177:  BSF    03.5
0178:  BCF    06.1
0179:  BCF    06.0
017A:  BCF    03.5
017B:  BCF    06.0
017C:  MOVLW  FF
017D:  MOVWF  5C
017E:  BSF    03.5
017F:  BSF    03.6
0180:  MOVF   09,W
0181:  ANDLW  C0
0182:  MOVWF  09
0183:  BCF    03.6
0184:  BCF    1F.4
0185:  BCF    1F.5
0186:  MOVLW  00
0187:  BSF    03.6
0188:  MOVWF  08
0189:  BCF    03.5
018A:  CLRF   07
018B:  CLRF   08
018C:  CLRF   09
018D:  BCF    03.7
.................... {
....................    setup_adc_ports(sAN0);
018E:  BSF    03.5
018F:  MOVF   09,W
0190:  ANDLW  C0
0191:  MOVWF  09
0192:  BCF    03.6
0193:  BCF    1F.4
0194:  BCF    1F.5
0195:  MOVLW  01
0196:  BSF    03.6
0197:  MOVWF  08
....................    setup_adc(ADC_CLOCK_DIV_2);
0198:  BCF    03.5
0199:  BCF    03.6
019A:  BCF    1F.6
019B:  BCF    1F.7
019C:  BSF    03.5
019D:  BCF    1F.7
019E:  BCF    03.5
019F:  BSF    1F.0
....................    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
01A0:  BSF    03.5
01A1:  MOVF   01,W
01A2:  ANDLW  C0
01A3:  IORLW  07
01A4:  MOVWF  01
....................    setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
01A5:  MOVLW  05
01A6:  BCF    03.5
01A7:  MOVWF  10
....................    setup_timer_2(T2_DIV_BY_1,0xFF,1);
01A8:  MOVLW  00
01A9:  MOVWF  78
01AA:  IORLW  04
01AB:  MOVWF  12
01AC:  MOVLW  FF
01AD:  BSF    03.5
01AE:  MOVWF  12
....................    setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
01AF:  BCF    03.5
01B0:  BSF    03.6
01B1:  CLRF   07
01B2:  CLRF   08
01B3:  CLRF   09
.................... //   enable_interrupts(INT_RDA);
....................    enable_interrupts(INT_RTCC);
01B4:  BCF    03.6
01B5:  BSF    0B.5
....................    enable_interrupts(INT_TIMER1);
01B6:  BSF    03.5
01B7:  BSF    0C.0
....................    enable_interrupts(INT_TIMER2);
01B8:  BSF    0C.1
....................    setup_oscillator(OSC_8MHZ);
01B9:  MOVLW  71
01BA:  MOVWF  0F
01BB:  MOVF   0F,W
.................... 
.................... output_high(PIN_C3); 
01BC:  BCF    03.5
01BD:  BCF    5C.3
01BE:  MOVF   5C,W
01BF:  BSF    03.5
01C0:  MOVWF  07
01C1:  BCF    03.5
01C2:  BSF    07.3
.................... output_high(PIN_C5); 
01C3:  BCF    5C.5
01C4:  MOVF   5C,W
01C5:  BSF    03.5
01C6:  MOVWF  07
01C7:  BCF    03.5
01C8:  BSF    07.5
.................... 
.................... dispdata[0] = 0xf1;
01C9:  MOVLW  F1
01CA:  MOVWF  28
.................... dispdata[1] = 0xf2;
01CB:  MOVLW  F2
01CC:  MOVWF  29
.................... dispdata[2] = 0xf4;
01CD:  MOVLW  F4
01CE:  MOVWF  2A
.................... dispdata[3] = 0xf8;
01CF:  MOVLW  F8
01D0:  MOVWF  2B
.................... dispdata[4] = 0xe0;
01D1:  MOVLW  E0
01D2:  MOVWF  2C
.................... dispdata[5] = 0xd0;
01D3:  MOVLW  D0
01D4:  MOVWF  2D
.................... dispdata[6] = 0xb0;
01D5:  MOVLW  B0
01D6:  MOVWF  2E
.................... dispdata[7] = 0x70;
01D7:  MOVLW  70
01D8:  MOVWF  2F
.................... 
.................... 
.................... while(true)
.................... {
.................... output_high(PIN_B3); 
01D9:  BSF    03.5
01DA:  BCF    06.3
01DB:  BCF    03.5
01DC:  BSF    06.3
.................... delay_ms(100);
01DD:  MOVLW  64
01DE:  MOVWF  5E
01DF:  CALL   047
.................... output_low(PIN_B3); 
01E0:  BSF    03.5
01E1:  BCF    06.3
01E2:  BCF    03.5
01E3:  BCF    06.3
.................... delay_ms(100);
01E4:  MOVLW  64
01E5:  MOVWF  5E
01E6:  CALL   047
.................... Clear_LED();
01E7:  GOTO   075
.................... Single_LED();
01E8:  GOTO   091
.................... delay_ms(100);
01E9:  MOVLW  64
01EA:  MOVWF  5E
01EB:  CALL   047
.................... Single_Line();
01EC:  GOTO   0F3
01ED:  GOTO   1D9
.................... 
.................... }
.................... }
01EE:  GOTO   1EE

Configuration Fuses:
   Word  1: 0CF5   INTRC NOWDT NOPUT MCLR NOPROTECT NOCPD NOBROWNOUT IESO FCMEN NOLVP DEBUG
   Word  2: 3FFF   BORV40 NOWRT

   Some fuses have been forced to be compatible with the ICD debugger.

So can anybody tell me the BIG Difference ???

Please be Aware in the non working code I just added one line in the main to get the Function "Single_Line" compiled and that is blowing the code !


BUT everything runs in CCS IDE fine ??

Best regards

Andreas
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Mon Jan 06, 2014 11:32 am     Reply with quote

You have the Protect fuse set:
Quote:
#include <16F886.h>
#device ICD=TRUE
#device adc=8

#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC //Internal RC Osc, no CLKOUT
#FUSES PUT //Power Up Timer
#FUSES MCLR //Master Clear pin enabled
#FUSES PROTECT //Code protected from reads
#FUSES NOCPD //No EE protection
#FUSES BROWNOUT //Reset when brownout detected
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG //Debug mode for use with ICD
#FUSES NOWRT //Program memory not write protected
#FUSES BORV40 //Brownout reset at 4.0V
#FUSES RESERVED //Used to set the reserved FUSE bits


From the MPLAB Help file for the Pickit3, it says don't use Protect fuse
during debugging:
Quote:

Top 10 Reasons Why You Can’t Debug

5. The device is code-protected. Check your Configuration bit’s setting for code pro­tection
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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