久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: MMA7660FC--重力加速度傳感器驅動 [打印本頁]

作者: xiaos    時間: 2015-4-10 16:55
標題: MMA7660FC--重力加速度傳感器驅動
static void I2C_Delay(void)
{
  volatile uint16_t t=0xff;
  while(t--);
}

static void I2C_Start(void)
{
  I2C_SDA_HIGH();
  I2C_SCL_HIGH();
  I2C_Delay();
  I2C_SDA_LOW();
  I2C_Delay();
  I2C_SCL_LOW();
  I2C_Delay();
}

static void I2C_Stop(void)
{
  I2C_SDA_LOW();
  I2C_SCL_HIGH();
  I2C_Delay();
  I2C_SDA_HIGH();
  I2C_Delay();
}

static uint8_t I2C_WaitAck(void)
{
  uint8_t Ack;
  I2C_SDA_HIGH();
  I2C_SCL_HIGH();
  I2C_Delay();
  if(I2C_SDA_Read())
    Ack=1;
  else
    Ack=0;
  I2C_SCL_LOW();
  I2C_Delay();
  return Ack;
}
/*
static void I2C_SendAck(void)
{
  I2C_SDA_LOW();
  I2C_Delay();
  I2C_SCL_HIGH();
  I2C_Delay();
  I2C_SCL_LOW();
  I2C_Delay();
}*/

static void I2C_SendNoAck(void)
{
  I2C_SDA_HIGH();
  I2C_Delay();
  I2C_SCL_HIGH();
  I2C_Delay();
  I2C_SCL_LOW();
  I2C_Delay();
}

static void I2C_SendByte(uint8_t Byte)
{
  uint8_t Bit;
  for(Bit=0;Bit<8;Bit++)
  {
    if(Byte&0x80)
      I2C_SDA_HIGH();
    else
      I2C_SDA_LOW();
    Byte<<=1;
    I2C_Delay();
    I2C_SCL_HIGH();
    I2C_Delay();
    I2C_SCL_LOW();
    I2C_Delay();
  }
}

static uint8_t I2C_ReceiveByte(void)
{
  uint8_t Bit,Byte=0;
  I2C_SDA_HIGH();
  for(Bit=0;Bit<8;Bit++)
  {
    I2C_SCL_HIGH();
    I2C_Delay();
    Byte<<=1;
    if(I2C_SDA_Read())
      Byte++;
    I2C_SCL_LOW();
    I2C_Delay();
  }
  return Byte;
}


/******************************MMA7660FC******************/

uint8_t MMA7660_WriteByte(uint8_t Reg,uint8_t Data)//Reg  MMA7660的寄存器地址  Data 寫進寄存器的值
{
  I2C_Start();
  I2C_SendByte(MMA7660_Write);
  if(I2C_WaitAck())
    return 1;
  I2C_SendByte(Reg);
  if(I2C_WaitAck())
    return 2;
  I2C_SendByte(Data);
  if(I2C_WaitAck())
    return 3;
  I2C_Stop();
  return 0;
}

uint8_t MMA7660_ReadByte(uint8_t Reg,uint8_t *pData)
{
  I2C_Start();
  I2C_SendByte(MMA7660_Write);//MMA7660 的I2C寫地址
  if(I2C_WaitAck())
    return 1;
  I2C_SendByte(Reg);
  if(I2C_WaitAck())
    return 2;
  I2C_Start();
  I2C_SendByte(MMA7660_Read);//MMA7660的I2C讀地址
  if(I2C_WaitAck())
    return 3;
  *pData=I2C_ReceiveByte();
  I2C_SendNoAck();
  I2C_Stop();
  return 0;
}

void MMA7660_Check(void)
{
  I2C_Start();
  I2C_SendByte(MMA7660_Write);
  if(I2C_WaitAck())
  {
    put_str("mei you hui ying \n");
  }
  else
  {
    put_str("you hui ying \n");
  }
  I2C_Stop();
}

void Sys_Init(void)
{
  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
  MMA7660_Init();
  USART_Configuration();
}

uint8_t MMA7660_Configuration(void)
{
  if(MMA7660_WriteByte(0x05,0xff))
    return 1;
  if(MMA7660_WriteByte(0x06,0x03))
    return 2;
  if(MMA7660_WriteByte(0x08,0x3c))
    return 3;
  if(MMA7660_WriteByte(0x09,0xe0))
    return 4;
  if(MMA7660_WriteByte(0x0a,0x00))
    return 5;
  if(MMA7660_WriteByte(0x07,0x59))
    return 6;
  return 0;
}

//想要獲取當前的狀態 只需要調用  
MMA7660_ReadByte()  讀取0x03 地址的數據  讀出來的數據中  [4:2]的數據才是有用數據  001  010  101  110 分別代表的是   左 右 下 上  .









歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 特黄特黄a级毛片免费专区 av网站免费在线观看 | 黑人中文字幕一区二区三区 | 亚洲欧美国产精品久久 | 精品国产乱码久久久久久果冻传媒 | 草久久 | 狠狠亚洲 | 罗宾被扒开腿做同人网站 | 福利片在线看 | 一区二区三区亚洲 | 99re热精品视频国产免费 | 国产1区2区在线观看 | 欧美亚洲视频 | 国产精品视频免费看 | 国产一区二区欧美 | 久久久久久成人 | 日韩一区二区三区视频 | 日韩av成人在线 | 免费一级做a爰片久久毛片潮喷 | 久久亚 | 成人av免费网站 | 亚洲成人一区 | 亚洲一区二区高清 | 韩日一区二区三区 | 免费一区 | 黄色一级大片视频 | 久久久久久久久久久久91 | 天天操天天摸天天干 | 天天操夜夜操 | 一级黄色淫片 | 人妖videosex高潮另类 | 羞羞免费网站 | 亚洲国产一区二区三区在线观看 | 在线国产一区 | 亚洲国产精品一区 | 蜜桃视频在线观看免费视频网站www | 久久99精品久久久 | 国产在线高清 | 欧美成人一区二免费视频软件 | 久久亚洲国产 | 91麻豆精品国产91久久久久久 | 91色在线 |