⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i2c.c

📁 智原mp3 SDK 开发包 与巨力 有mp3 wma ogg decoder
💻 C
字号:
#include "api.h"
#include "i2c.h"

//#ifdef CONFIG_FPGA

//--------------------------------------------------------------------------
static void vI2C_Delay(void)
{
   INT8U i;
   for(i=10;i>0;i--);
}

//--------------------------------------------------------------------------
void vI2C_Start(void)
{
   INT8U count;
   
   api_vI2CPinSelect();

   for (count = ERROR_COUNT;count > 0;count--)
   {
      IIC_DAT = 1;
      vI2C_Delay();
      IIC_CLK = 1;
      vI2C_Delay();
      IIC_DAT = 0;
      vI2C_Delay();
      IIC_CLK = 0;
      vI2C_Delay();    
      if (!(IIC_DAT|IIC_CLK)) break;
   }
}

//--------------------------------------------------------------------------
void vI2C_Stop(void)
{
   INT8U count;

   for (count = ERROR_COUNT;count > 0;count--)
   {
      IIC_DAT = 0;
	  	vI2C_Delay(); 
      IIC_CLK = 0;
      vI2C_Delay();      
      IIC_CLK = 1;
      vI2C_Delay();
      IIC_DAT = 1;
      vI2C_Delay(); 
      if (IIC_DAT&IIC_CLK) break;
   }
   
   api_vI2CPinRecover();
}

//--------------------------------------------------------------------------
INT8U u8I2C_ByteIn(INT8U isLast)
{
   INT8U dt = 0x00;
   INT8U i;

   IIC_DAT = 1;
      
   for ( i=0x80; i; i>>=1 ) {
   	  IicBitIn();
	  	vI2C_Delay(); 
      if(IIC_DAT) dt |= i;
      IIC_CLK = 0;
   }

   //send ACK
   IIC_DAT = isLast;
   IIC_CLK = 1;
   vI2C_Delay();
   IIC_CLK = 0;
	 vI2C_Delay(); 
   IIC_DAT = 1;
   vI2C_Delay();

   return dt;
}

//--------------------------------------------------------------------------
BOOLEAN bI2C_ByteOut(INT8U dt)
{
   INT8U count;

   for (count = 0; count < 8; count ++, dt <<= 1) {
   	IicBitOut(dt & 0x80);
   }

   // Ack
   IIC_DAT = 1;
   vI2C_Delay();
   IIC_CLK = 1;
   vI2C_Delay();

   for (count = ERROR_COUNT;count > 0;count--)
   {
      if (!IIC_DAT) 
      {
         IIC_CLK = 0;
         return TRUE;
      }
   }
      
   IIC_CLK  =  0;
   
   api_vI2CPinRecover();
   
   return FALSE;
}

//#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -