ADXL362 程序

原创 2015年11月17日 17:30:03

直接上程序:

/**************************************************************************************************
 * @fn      HalLcd_HW_WaitUs
 *
 * @brief   wait for x us. @ 32MHz MCU clock it takes 32 "nop"s for 1 us delay.
 *
 * @param   x us. range[0-65536]
 *
 * @return  None
 **************************************************************************************************/
void Delay_us(uint16 microSecs)
{
  while(microSecs--)
  {
    /* 32 NOPs == 1 usecs */
    asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
    asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
    asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
    asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
    asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
    asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop");
    asm("nop"); asm("nop");
  }
}
void ADXL362_Write_Reg(uchar Addr0,uchar Data0)
{
    G_CS = 0;
    CS_OLED = 1;
    Delay_us(5);
    SPI_Write_one_reg(0x0A);
    SPI_Write_one_reg(Addr0);
    SPI_Write_one_reg(Data0);
    Delay_us(5);
    G_CS = 1;
}


uint8 ADXL362_Read_Reg(uchar Addr1)
{
    uint8 Data1;
    
    G_CS = 0;
    CS_OLED = 1;
   Delay_us(5);
    SPI_Write_one_reg(0x0B);
    SPI_Write_one_reg(Addr1);
    SPI_Write_one_reg(0x00);
   Delay_us(5);
    Data1 = temp;
    G_CS = 1;
    return Data1;
}
void ADXL362_Burst_Read_Reg(uint8 addr2, uint8 byte, uint8 *data)
{
    uint8 i;
    G_CS = 0;
    CS_OLED = 1;
    Delay_us(5);
    SPI_Write_one_reg(0x0B);
    SPI_Write_one_reg(addr2);
        
    for(i=0;i<byte;i++)
    {
        SPI_Write_one_reg(0x00);
        Delay_us(5);
        SPI_Read_one_reg(data);
        //SPI_Write_one_reg(0x00);
        //*data = temp;
        data++;
	Delay_us(5);
    }
   
    G_CS = 1;
}

void ADXL362_FIFO_read_byte( uint8 byte, uint8 *data)
{ 
    uint8 i;
    G_CS = 0;
    CS_OLED = 1;
    Delay_5us0();
    SPI_Write_one_reg(0x0D);
    for(i=0;i<byte;i++)
    {
        SPI_Write_one_reg(0x00);
        Delay_5us0();
        SPI_Read_one_reg(data);
        data++;
    }
    G_CS = 1;
}

void Delay_5us0(void)
{
     asm("nop");//fcpu 16MHz 时
     asm("nop");
     asm("nop");
     asm("nop");
     asm("nop");
}



void ADXL362Init(void)
{
    P0SEL &= ~ 0x40;//cs pin
    P0DIR |= 0x40;
   
  //HalInitSPI();
    InitAlgorithmParameters_Tap();
    ADXL362_Write_Reg(0x1F,0x52);   // software reset
    Delay_ms(20);
    ADXL362_Write_Reg(0x20,0x1F);   // 0x20 THRESH_ACT_L
    ADXL362_Write_Reg(0x21,0x00);   // 0x21 THRESH_ACT_H
    ADXL362_Write_Reg(0x22,50);   // 0x22 TIME_ACT
    ADXL362_Write_Reg(0x23,0x09);   // 0x23 THRESH_INACT_L
    ADXL362_Write_Reg(0x24,0x00);   // 0x24 THRESH_INACT_H
    ADXL362_Write_Reg(0x25,0x01);   // 0x25 TIME_INACT_L
    ADXL362_Write_Reg(0x26,0x00);   // 0x26 TIME_INACT_H
    ADXL362_Write_Reg(0x27,0x03);   // 0x27 ACT_INACT_CTL   参考模式
    //ADXL362_Write_Reg(0x28,0x00);   // 0x28 FIFO_CONTROL
    //ADXL362_Write_Reg(0x29,0x80);   // 0x29 FIFO_SAMPLES
    ADXL362_Write_Reg(0x28,0x01);   // 0x28 FIFO_CONTROL  Stream mode  0x09
    ADXL362_Write_Reg(0x29,0x33);   // 0x29 FIFO_SAMPLES  0xfe--> 510 byte
    ADXL362_Write_Reg(0x2A,0x84);   // 0x2a INTMAP1  Data_ready 映射到 Int1,下降沿
    ADXL362_Write_Reg(0x2B,0x90);   // 0x2b INTMAP2  avtivity 映射到Int2,下降沿
    ADXL362_Write_Reg(0x2C,0x82);   // 0x2c FILTER_CTL  0x82 50hz 0x84 200hz
    
    ADXL362_Read_Reg(0x0B);
      
    ADXL362_Write_Reg(0x2D,0x02);   // 0x2d POWER_CTL  Measurement mode.

    Delay_ms(200);
    ADXL362_Read_Reg(0x00);
        ADXL362_Burst_Read_Reg(0x0e,6,databuf);
        
     //ADXL362_Write_Reg(0x2D,0x00);   //
}





版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

DA14580与ADXL362应用

DA14580 于ADXL362传感器的应用在项目使用中,采用了ADXL362三轴加速度传感器用来读取加速度值,继而经过算法处理,转化为步数和运动状态。 在使用的过程中发现,在开起了睡眠的宏定义之后...

nRF51822 SPI 驱动 ADXL362

硬件平台:微雪nRF51822开发板 软件平台:MDK522 SDK版本:SDK5 nRF51822的任意管脚可以配置成SPI的管脚,其官方给的代码有一个SPI_master,里面只有两...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

ADXL362 程序

直接上程序: /*******************************************************************************************...

50道编程小题目

【程序1】  题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少?  1.程序分析: 兔子的规律...

写给新手程序员的一封信

首先,欢迎来到程序员的世界。在这个世界上,不是有很多人想创造软件并解决问题。你是一名hacker,属于那些愿意做一些有挑战性的事情的人。 “当你不创造东西时,你只会根据自己的感觉而不是能力去看待问题...

十二星座的“程序员”,都是怎么写代码的?

十二星座的“程序员”,都是这么写代码的!!!!!

怎样才能叫高级程序员?

Stephen Tobolowsky在定义联体三角形…… “我真的开始对我在这里做的事情感觉不自信了。如果我们都不知道高级程序员到底是个什么样子,那我又该怎么朝这个目标努力?” 我们Fro...

要嫁就嫁程序员,钱多话少死得早~

今天在在网上看到了一个关于程序员的笑话,特此搬来跟大家分享一下~~~ 一、 程序猿问科比:“你为什么这么成功? ” 科比:“你知道洛杉矶凌晨四点是什么样子吗? ” 程序猿:“知道,一般那个时...

要嫁就嫁程序员,钱多话少死得早~

今天在在网上看到了一个关于程序员的笑话,特此搬来跟大家分享一下~~~ 一、 程序猿问科比:“你为什么这么成功? ” 科比:“你知道洛杉矶凌晨四点是什么样子吗? ” 程序...

【杂谈】写给正在过"程序员节"的我们

前言今天是程序员节。 1024是2的十次方,二进制计数的基本计量单位之一。程序员(英文Programmer)是从事程序开发、维护的专业人员。程序员就像是一个个1024,以最低调、踏实、核心的功能模...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)