使用AVR单片机内部的TWI功能,并采用中断工作模式,可以很好的使用Atmega系列的内部资源,并提高程序的稳定性;
#include unsigned char i2c_sla; unsigned char i2c_addrh,i2c_addrl; unsigned char i2c_wr; unsigned char i2c_sub_flag; unsigned char i2c_num; unsigned char *i2c_buf; unsigned char i2c_end; /*********************************************************************************************************************************************************************** 函数名称:interrupt [TWI] void twi_isr(void) 函数功能:i2c底层中断处理函数(时钟SD2201和AT24C256共同的) ***********************************************************************************************************************************************************************/ interrupt [TWI] void twi_isr(void) { unsigned char i2c_sta,tmp = 0; i2c_sta = TWSR; switch(i2c_sta) { case 0x08: if(i2c_sub_flag == 1) { TWDR = i2c_sla&0xfe; } else { TWDR = i2c_sla; } //TWCR &= 0xcf; //TWCR |= 0x80; TWCR = 0x85; break; case 0x10: TWDR = i2c_sla; //TWCR &= 0xcf; //TWCR |= 0x80; TWCR = 0x85; //i2c_sub_flag = 1; break; case 0x18: if(i2c_sub_flag == 0) { if(i2c_num > 0) { TWDR = *i2c_buf; //TWCR &= 0xcf; //TWCR |= 0x80; TWCR = 0x85; i2c_buf++; i2c_num--; } else { //TWCR &= 0xdf; //TWCR |= 0x90; TWCR = 0x95; i2c_end = 1; } } if(i2c_sub_flag == 1) { TWDR = i2c_addrh; //TWCR &= 0xcf; //TWCR |= 0x80; TWCR = 0x85; i2c_sub_flag = 2; } break; case 0x28: if(i2c_sub_flag == 3) { if(i2c_wr == 0) { if(i2c_num > 0) { TWDR = *i2c_buf; i2c_buf++; //TWCR &= 0xcf; //TWCR |= 0x80; TWCR = 0x85; i2c_num--; } else { //TWCR &= 0xdf; //TWCR |= 0x90; TWCR = 0x95; i2c_end = 1; } } } if(i2c_sub_flag == 2) { TWDR = i2c_addrl; //TWCR &= 0xcf; //TWCR |= 0x80; TWCR = 0x85; i2c_sub_flag = 3; } if(i2c_sub_flag == 3) { if(i2c_wr == 1) { //TWCR &= 0xef; //TWCR |= 0xa0; TWCR = 0xa5; } } if(i2c_sub_flag == 0) { if(i2c_num > 0) { TWDR = *i2c_buf; //TWCR &= 0xcf;
上一篇:M16单片机l红外线解码程序+led数码管显示
下一篇:单片机AD接收UART发送模块电路图PCB与vb上位机源码
推荐阅读
史海拾趣
随着市场需求的不断增长,意普(ESPE)公司开始拓展产品线,推出了包括通用光栅、反射板等一系列光电保护产品。同时,公司注重产品创新,不断引进国外先进技术,并结合国内市场需求进行改进,成功推出了多款具有竞争力的新产品。这些产品广泛应用于机械加工、汽车制造等行业,有效提升了客户的安全生产水平。
随着全鹏在巴西市场的稳固地位,公司决定在2006年创立C3 TECH品牌,以进一步提升其品牌影响力。C3 TECH品牌的创立不仅增强了全鹏在巴西市场的竞争力,还为公司带来了更多的商机。通过精心策划的市场营销活动和优质的产品质量,C3 TECH品牌迅速获得了当地消费者的认可,并在市场上树立了良好的口碑。
随着半导体技术的兴起,DuPont公司敏锐地捕捉到了这一领域的发展潜力。公司投入大量资源,致力于半导体材料的研发和生产。通过不断的技术创新,DuPont成功开发出了一系列高性能的半导体材料,如高纯度硅材料、光刻胶等。这些材料在半导体制造过程中发挥着至关重要的作用,极大地推动了半导体技术的进步和产业的发展。
随着公司的发展,CYAN开始寻求与大型企业的合作。2009年,CYAN与沃尔沃汽车达成战略合作,为其提供了先进的网络解决方案,并成功将技术应用于沃尔沃的量产车型中。这次合作不仅提升了CYAN的品牌知名度,也为其带来了更多的商业机会。
在发展过程中,安路科技积极寻求与产业链上下游企业的战略合作,通过技术合作、市场共享等方式,共同推动FPGA产业的发展。同时,公司也吸引了多家知名投资机构的关注,成功获得了多轮融资。这些资本的注入为安路科技的技术研发和市场拓展提供了强有力的支持。
随着电子行业的不断发展,市场对电子元件的需求也在不断变化。为了适应这一变化,DLI不断调整产品战略,推出了更多符合市场需求的新产品。例如,针对商业和工业领域的需求,DLI研发了具有高性能、高可靠性特点的MLCC产品,并成功打开了市场。此外,公司还不断加大研发投入,探索新的技术领域,以保持其在行业中的领先地位。
摘要:本应用笔记比较了集成RF混频器与无源混频器方案的整体性能,论述了两种方案的主要特征,并指出集成方案相对于无源方案的主要优点。 过去,RF研发人员在高性能接收器设计中使用无源下变频混频器取得了较好的整体线性指标和杂散指标。但在这 ...… 查看全部问答∨ |
Pause Trigger,它根据触发信号的电平来决定是否执行采集,也就是说可以在采集开始后暂停或继续采集. 可以在时钟属性中设置这种方式。一般需要采用外部时钟或计数器时钟。… 查看全部问答∨ |
vs2005开发环境,C#语言开发的pda程序怎么不能操作sqlce2.0数据库怎么办 我现在做的pda程序就是要操作sql ce2.0,但是用的vs2005和c#语言开发的程序好像不能操作它(能操作3.0)。 我现在数据库是不能动了,只能想办法来操作这个数据库,听说vs2003+c#是可以操作sql ce2.0数据库的,除了这 ...… 查看全部问答∨ |
|