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