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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5684|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

MMA7660FC--重力加速度傳感器驅(qū)動(dòng)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:75926 發(fā)表于 2015-4-10 16:55 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
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 寫進(jìn)寄存器的值
{
  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;
}

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




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品亚洲视频 | 国产精品成人一区二区 | 免费精品在线视频 | 网站黄色av| 免费的网站www | 日韩高清电影 | 欧美极品少妇xxxxⅹ免费视频 | 玖草资源| 日本人和亚洲人zjzjhd | 天堂一区二区三区 | 一区不卡在线观看 | 日韩视频一区在线观看 | 午夜精品久久 | 天天干天天爱天天操 | 四虎影院久久 | 国产一区二区三区精品久久久 | 91免费入口 | 日日夜夜天天 | 美女天天干天天操 | 日韩欧美在线视频播放 | 久久一二区 | 一区二区三区观看视频 | 狠狠爱免费视频 | 国产一区二区在线免费观看 | 亚洲性视频网站 | 男女污污动态图 | 国产一区二区三区日韩 | 久久久久国产一区二区三区四区 | 久久久精品综合 | 丁香六月激情 | 无码一区二区三区视频 | 黄色91在线| 成人在线精品视频 | 欧美美女爱爱 | 日韩乱码在线 | 欧美精品成人 | 亚洲精品乱码久久久久久按摩观 | 日韩电影中文字幕在线观看 | 欧美日韩三级 | 久久久久久综合 | 欧美jizzhd精品欧美巨大免费 |