ade7753程序不正確,請高人幫我看一下有什么問題,謝謝啦
#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit ad7753_din=P3^0;
sbit ad7753_dout=P3^1;
sbit ad7753_sclk=P3^2;
sbit ad7753_cs=P0^3;
void ad7753_write1byte(uchar dat);
uchar ad7753_read1byte(void);
void ad7753_write(uchar reg,uchar *pnt,uchar cnt);
void ad7753_read(uchar reg,uchar *pnt,uchar cnt);
void delay(void);
uchar table[2]={0x00,0x08};
uchar result[4];
void main (void)
{
ad7753_write(0x0a,table,2);
delay();
ad7753_read(0x0a,result,2);
delay();
while(1);
}
void ad7753_write1byte(uchar dat)
{
uchar i;
for(i=0;i<8;i++)
{
??ad7753_sclk=1;
??_nop_();??
??if(dat&0x80!=0)
??ad7753_din=1;
??else
??ad7753_din=0;
??ad7753_sclk=0;
??dat=dat<<1;
??_nop_();
}
}
uchar ad7753_read1byte(void)
{
uchar i,bb=0;
for(i=0;i<8;i++)
{
??ad7753_sclk=1;
??if(ad7753_dout!=0)
??bb=bb&0x01;
??_nop_();
??ad7753_sclk=0;
??bb=bb<<1;
??_nop_();
}
return bb;
}
void ad7753_write(uchar reg,uchar *pnt,uchar cnt)
{
uchar i;
ad7753_sclk=0;
_nop_();
ad7753_cs=0;
_nop_();
ad7753_write1byte(reg&0x80);
for(i=0;i{
_nop_();
ad7753_write1byte(*pnt++);
// *pnt++;
_nop_();? ?
}
ad7753_sclk=0;
_nop_();
ad7753_cs=1;
}
void ad7753_read(uchar reg,uchar *pnt,uchar cnt)
{
uchar i;
ad7753_sclk=0;
_nop_();
ad7753_cs=0;
_nop_();
ad7753_write1byte(reg);
for(i=0;i{
delay();
*pnt++=ad7753_read1byte();
// delay();? ?
}
ad7753_sclk=0;
_nop_();
ad7753_cs=1;??
}
void delay(void)? ?//誤差 0us
{
? ? unsigned char a,b;
? ? for(b=1;b>0;b--)
? ?? ???for(a=1;a>0;a--);
}
寫進0x0a寄存器之后,讀取結(jié)果總是0,不知道什么原因,幫我看一下,什么地方有問題,謝謝啦!
提問者:jingyin58783
地點:-
瀏覽次數(shù):1795
提問時間:12-26 06:55
我有更好的答案