| 问题题描述:Debugger模式下读取数据正常,而Programmer后,接收不到数据 部分程序如下:
 
 #define CLK            LATBbits.LATB12                //时钟
#define DIN         LATBbits.LATB13                //数据输出
#define DOUT        PORTBbits.RB14                //片选
#define CS      LATBbits.LATB15            //数据输入
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
///TLC2543 12位AD操作程序
//12 bit ,MSB first,unipolar
unsigned int TLC2543(unsigned char chan) 
{
        char i;
        unsigned int result;
//////////////////////////////////////////
        CLK=0;
        CS=0;       //低电平有效,开始转换
        Delay_3n_nop(50);                                // 10us
        for(i=0;i<12;i++)
        {
                if(i<8)
                {      
                        if((chan<<i)&0x80)
            DIN=1;
            else 
            DIN=0;
                }
                CLK=1;
                Delay_3n_nop(10);  //2u
                CLK=0;
                Delay_3n_nop(10);
        }
        CS=1;
//延时10U秒以上,等待转换结束
        Delay_3n_nop(200);                        // 40u
        result=0;
        CS=0;       //低电平有效,开始转换
        Delay_3n_nop(50);
        for(i=0;i<12;i++)
        {
        //        DOUT=1;
                CLK=1;
                Delay_3n_nop(10);
                result|=DOUT;
                if(i!=11)
                {
                   result<<=1;
                }
                CLK=0;
                Delay_3n_nop(10);
        }
        CS=1;
        return result;
}
AD1PCFGH = 0xffff;
        AD1PCFGL = 0xffff;
        TRISBbits.TRISB12 = 0;                        // 软件模拟SPI clk
        TRISBbits.TRISB13 = 0;                        //                 DIN
        TRISBbits.TRISB14 = 1;                        //                                 DOUT
        TRISBbits.TRISB15 = 0;                        //                                ~CS 低电平使能
 MPLAB IDE 8.9 compile 30 kit3
 
 |