问题题描述: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
|