uchar SDA_Return(void)//0-low level 1-hign level
{
uchar flag;
uchar oldSREG=SREG;
SREG&=~(_BV(7));
DDRC&=0xfd;
PORTC|=_BV(PC1);
if((PINC&_BV(PC1)) !=0)//0000 0010
flag=1;
else
flag=0;
SREG=oldSREG;
return flag;
}
void delay(void)
{
;
;
}
void start(void)
{
SDA_1;
delay();
SCL_1;
delay();
SDA_0;
delay();
}
void stop(void)
{
SDA_0;
delay();
SCL_1;
delay();
SDA_1;
delay();
}
void respons(void)
{
uchar i=0;
SCL_1;
delay();
while((SDA_Return())&&(i<250))i++;
SCL_0;
delay();
}
void I2C_init(void)
{
SDA_1;
delay();
SCL_1;
delay();
}
void write_byte(unsigned char i)
{
unsigned char temp,num=0;
for(temp=0;temp<8;temp++)
{
num=i&0x80;
SCL_0;
delay();
if(num==0)
{SDA_0; }
else
{SDA_1; }
delay();
SCL_1;
delay();
i=i<<1;
delay();
}
SCL_0;
delay();
SDA_0;
delay();
}
uchar read_byte(void)
{
uchar i,j,value=0;
SCL_0;
for(i=0;i<8;i++)
{
value<<=1;
value|=SDA_Return();
SCL_1;
delay();
//delay();
SCL_0;
delay();
}
return value;
}
void Ack_I2c(void)
{
SDA_0;
delay();
SCL_1;
delay();
SCL_0;
delay();
SDA_1;
}
void NAck_I2c(void)
{
SDA_1;
delay();
SCL_1;
delay();
SCL_0;
delay();
}
上一篇:ICC-AVR DS1821S温度报警程序
下一篇:mega32单片机最简单的中断程序——外部中断
推荐阅读
史海拾趣
Bedford Opto公司在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,致力于减少生产过程中的污染和能耗。同时,公司还积极参与公益事业,为社会做出积极贡献。
随着电子行业的竞争日益激烈,Anachip公司意识到单凭自己的力量难以应对市场的快速变化。于是,公司开始积极寻求与其他企业的合作。通过与多家知名电子企业建立战略合作关系,Anachip成功将自己的芯片技术应用于更多领域,进一步扩大了市场份额。同时,这种合作模式也促进了整个电子行业的共同发展。
在物联网(IoT)和智能制造领域,Fujitsu America也展现出了卓越的创新能力和市场洞察力。公司通过与PTC等合作伙伴的紧密合作,将物联网技术和智能制造技术相结合,推出了一系列面向制造业的智慧工厂解决方案。这些解决方案不仅提高了生产效率和产品质量,还降低了生产成本和能源消耗,为制造业的数字化转型和可持续发展提供了有力支持。Fujitsu America的智慧工厂解决方案在北美市场得到了广泛应用和认可,为公司赢得了良好的市场口碑和品牌形象。
随着云计算的普及,企业对于云安全的需求日益增长。Defender Security公司敏锐地捕捉到了这一市场趋势,迅速推出了云安全服务产品。他们通过整合先进的安全技术和专业的安全团队,为企业提供了全方位的云安全保护。随着云安全服务的不断拓展和优化,Defender Security逐渐成为了云安全领域的领军企业。
随着企业规模的不断扩大,ALLTHREAD开始更加关注社会责任和可持续发展。他们积极参与环保公益活动,推动绿色生产,减少对环境的影响。同时,他们还关注员工福利和社会公益事业,努力为社会做出更多贡献。
这些故事是基于电子行业发展的一般规律和模式编写的,旨在为您提供一些关于ALLTHREAD公司可能的发展路径的参考。但请注意,这些故事并非基于真实事实,因此可能与ALLTHREAD公司的实际情况存在出入。
有调通过marvell wifi 8686 sdio接口驱动来讨论下??? 正在调sdio接口的wifi 8686驱动,sdio确认好的,读写寄存器,加载固件都没问题。有以下问题: 1. 我是直接把驱动放在bsp中编的,wince启动后自动加载wifi驱动, 并且这个wifi驱动会自行搜索热点。我的理解是wifi驱动加载固件启动完wifi芯片注册网络 ...… 查看全部问答∨ |
|
SESSION_POS_S *pTestpos1, *pTestpos2, *pTestpos3, *pPos; LIST *pMyList = NULL; int NodeIndex = 0; DPRINT("-------- lstAdd测试 -------\\n ...… 查看全部问答∨ |
|
用电位器输出一个电压值,从我watch窗口看到的ADCresult值都在变化,变化比较大。如0xabc0,b为都会能差4,帮忙分析一下可能那里设置不对。谢谢!… 查看全部问答∨ |
|
想请问你一下 那个ez430-rf2500为什么ed连上电池两个灯还是不闪。。ap的红灯在闪烁。。并且PC上温度只有一个ap温度显示。。就是说ed的没有反应。。好像是没有连接到网络。。后来又折腾了一下。。现在ap的红绿灯都在闪。。但是ed还是没反应。 ...… 查看全部问答∨ |
|
#include<reg51.h> // 包含51单片机寄存器定义的头文件unsigned char code Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数字0~9的段码unsigned char int_time ; //中断次数计数变量unsigned ...… 查看全部问答∨ |
module main ( ....); wire clk1MHz; // 产生1MHz的时钟波形 // 输入为20MHz的时钟 clock_divider instT1MHz &nb ...… 查看全部问答∨ |