-
楼主说的有道理,最近我也在想这个问题。
-
我上传整个代码吧 香斑竹帮忙看一下 是不是TIM8没有起作用啊
DAC.rar (1.02 MB)
下载次数:4
2011-1-20 15:00
-
比较好奇什么项目需要用这玩意……
-
锁相环都会包含有一个基本震荡频率,当失锁时(没有HSE信号),会输出自己的基本震荡频率。就是我指的“PLL的最低频率”
-
调了很多,调高还是调低?
-
帮顶。。
-
因为电机好几个的缘故吧,所以需要有地址位。地址位才一位的吗??
-
是不是没有安装sp1补丁
-
引用 8 楼 gooogleman 的回复:
认识一个人做过。呵呵。现在很久不联系了呵呵。
晕,可以联系联系,要点资料,看看怎么做的。哈哈
-
检测到 EINT 可以读很多的数据 着就要看你自己怎么处理了
-
惭愧呀,完全看不懂。
-
#include "W79E824.H"
#include
#define uint unsigned int
#define uchar unsigned char
//#define WP=0 _nop_()
//#define WP=1 _nop_()
bit flag;
#define SCL P12
sbit SDA1=P1^3;
//sbit WP=P3^4;
/*EEPROM Fuction*/
void delay(void)
{
uchar i;
for(i=20;i>0;i--)
_nop_();
}
/*
void delayij(uchar i,uchar j)
{
uchar m,n;
for(m=0;m0;n--); //延时124*8+10=1002us
{
_nop_();
}
}
}
*/
/*********************************************************
**名称:I2C_Start
**功能:启动I2C
**输入:无
**返回:无
*********************************************************/
void I2C_Start()
{
SDA1=1;
delay();
SCL=1;
delay();
SDA1=0;
delay();
SCL=0;
}
/**********************************************************
**名称:I2C_Stop
**功能:停止I2C
**输入:无
**返回:无
**********************************************************/
void I2C_Stop()
{
SDA1=0;
delay();
SCL=1;
delay();
SDA1=1;
delay();
}
/**********************************************************
**名称:Ack
**功能:应答信号
**输入:无
**返回:无
**********************************************************/
void Ack()
{
SDA1=0;
delay();
SCL=1;
delay();
SCL=0;
delay();
SDA1=1;
delay();
}
/********************************************************
**名称:NoAck
**功能:发送非应答信号
**输入:无
**返回:无
********************************************************/
void NoAck()
{
SDA1=1;
delay();
SCL=1;
delay();
SCL=0;
delay();
SDA1=0;
delay();
}
/********************************************************
**名称:Test_Ack()
**功能:检测应答位
**输入:无
**返回:flag,有应答时flag为0,无应答时flag为1
*********************************************************/
bit Test_Ack()
{
SCL=0;
SDA1=1;//读入数据
_nop_();_nop_();_nop_();_nop_();
SCL=1;
_nop_();_nop_();_nop_();_nop_();
if(SDA1==0)
flag=1;
else flag=0;
SCL=0;
return(flag);
}
/********************************************************
**名称:SendData()
**功能:发送一字节数据
**输入:buffer
**返回:
*******************************************************/
void SendData(uchar buffer)
{
uchar BitCnt=8;//一字节8位
uchar temp=0;
do
{
temp=buffer;
SCL=0;
delay();
if((temp&0x80)==0) //
SDA1=0;
else
SDA1=1;
delay();
SCL=1;
temp=_crol_(buffer,1);//rl buff
buffer=temp;
BitCnt--;
}
while(BitCnt);
SCL=0;
}
/**************************************************************
**名称:uint ReceiveData()
**功能:接收一字节数据
**输入:
**返回:ucReceData
**说明:将接收的数据存放在ucReceData中
**************************************************************/
uchar ReceiveData()
{
uchar ucReceData;
uchar BitCnt=8;
uchar temp=0;
SDA1=1;//读入数据
do
{
SCL=0;
delay();
SCL=1;
delay();
if(SDA1==1)
ucReceData=ucReceData|0x01;
else
ucReceData=ucReceData&0x0fe;
if(BitCnt-1)
{
temp=_crol_(ucReceData,1);
ucReceData=temp;
}
BitCnt--;
}
while(BitCnt);
SCL=0;
return(ucReceData);
}
/*************************************************************
**bit WriteNByte()
**24C64中写入多字节数据
**
** *s-data to write sbbab-data address 8bits low
**sla-device address suba-data address 8bits high n-bytes(n8);
subab=addr&0x00ff;
I2C_Start();
SendData(sla);
Test_Ack();
if(flag==0) return(0);
SendData(suba);
Test_Ack();
if(flag==0) return(0);
SendData(subab);
Test_Ack();
if(flag==0) return(0);
for(i=0;i
-
我学的通信,感觉硬件较难,软件太一通百通了。
-
电平兼容问题 每个芯片的高低电平的识别是不同的 你查查
-
应该是可以的,我以前在模拟器里试过。
-
串口通讯使用中断发送吗
-
区别还是比较大的。而且以后区别会越来越大。
-
相当于简单的 灯光控制器/沙盘模型控制
如果用USB转串(或者转并口)的话
驱动会不会有不兼容等问题
-
kernel的OEMInit中对中断和时钟进行了设置.......
另外hardware..........
-
对不起,如果确实是开发这个函数库时没有考虑使用这个选项,我们没有必要再讨论下去了。