-
单片机与AD采集卡方面的,SPI通讯,谢谢了,yuechunfeng123@163.com
-
版主辛苦,有时间我一定看完!
-
我想也是,应该是短路了,换了个单片机,单片机好使了,可是AD又不好使了,应该是一起烧了,
-
检查完了,单片机换上了,好使,AD烧了没有片子了,呵呵,等芯片呢
-
yuechunfeng123@163.com我的邮箱,可以的话把办法发到我邮箱里哈,thank you!
-
原帖由 leang521 于 2010-3-11 11:46 发表 [url=https://bbs.eeworld.com.cn/redirect.php?goto=findpost&pid=317661&ptid=98036][/url]
重启不行,这个仿真器说实在的不咋地,没法子,只能初始化。
如何初始化呢?确实是UE5
-
我都郁闷完了。。。。。。。。。。。
-
怎么初始化?
-
自己动手做应该挺有意思的,呵呵
-
看着它我只能吐舌头了:sexy:
-
:loveliness:
-
下面的是初始化以及端口配置
-
#include
#include // SFR declarations
//-----------------------------------------------------------------------------
unsigned char t;
unsigned char k;
unsigned char rr[];
unsigned char aa[];
sbit RDY=P0^3;
sbit ADCS=P0^7;
//-----------------------------------------------------------------------------
void OSCILLATOR_Init (void)
{
OSCICN = 0x80; // Configure internal oscillator for
}
//-----------------------------------------------------------------------------
void delay(int n)
{
char j;
for(j=0;j
-
void write(unsigned char bb )
{
// ADCS=0;
SPI0DAT=bb;
while(SPIF ==0);
SPIF =0;
// delay(5);
// ADCS=1;
}
//-----------------------------------------------------------------------------
char read(void)
{
char temp;
SPI0DAT =0XFF;
while(SPIF ==0);
SPIF =0;
temp=SPI0DAT;
return temp;
}
//-----------------------------------------------------------------------------
void main (void)
{
PCA0MD &= ~0x40; // WDTE = 0 (clear watchdog timer enable)
OSCILLATOR_Init(); // Initialize system clock
PORT_Init(); // Initialize crossbar and GPIO
ADCS = 0;
write(0x28);//写通道设置寄存器,
write(0x08);//通道1使能
write(0x30);//写通道转换时间寄存器
write(0x91); //chop使能,设置FW为11,2425
write(0x3a);//写模式寄存器(为什么PDF上面说地址为0x38的模式寄存器不能 写,只能读?而例子时序上面都是用的0x38?)
write(0x42);//单转换模式,DUMP模式关闭。
while(RDY);//等待RDY拉低
write(0x4a);//如果拉低,写通信寄存器,读数据寄存器。
P3=read();//通过P1P2P3口并行输出24位数据
P2=read();
P1=read();
}
-
努力,靠时间积累啊!
-
那我先谢谢了!
-
还需要加什么判断以保障程序的容错性?
-
我的这个读写函数有没有什么问题呢?
-
void write(unsigned char bb )
{
// ADCS=0;
SPI0DAT=bb;
while(SPIF ==0);
SPIF =0;
// delay(5);
// ADCS=1;
}
//-----------------------------------------------------------------------------
char read(void)
{
char temp;
SPI0DAT =0XFF;
while(SPIF ==0);
SPIF =0;
temp=SPI0DAT;
return temp;
}
-
或者加我的QQ也行,249863865