ADXL345使用心得

最近做项目有使用到ADXL345,包括中断唤醒、低功耗等等。

345具有中断唤醒功能,所以当不需要读数的时候就可以使用静止功能,反之使用活动功能,可以达到省电的目的,我用的100HZ速率,大概在38UA的样子。

具体配置如下:

   _cmd_write_0(INT_ENABLE, 0x00);//close int
   _cmd_write_0(BW_RATE, 0x1A);//lowpower 100hz
   _cmd_write_0(DATA_FORMAT, 0x2B);//SPI low level on
   _cmd_write_0(THRESH_ACT, 0x05);
   _cmd_write_0(THRESH_INACT, 0x05);
   _cmd_write_0(TIME_INACT, 0x02);//2s
   _cmd_write_0(ACT_INACT_CTL, 0xFF);//AC: X  Y  Z
   _cmd_write_0(INT_MAP, 0x10);//activity--INT2 ; others--INT1
   _cmd_write_0(INT_ENABLE, 0x18);//activity & inactivity
   _cmd_write_0(POWER_CTL, 0x38);//LINK & AUTO_SLEEP

我自己使用的CPU是TI的芯片,具体就不介绍了;如果想用更低的功耗,还可以将_cmd_write_0(POWER_CTL, 0x38);//LINK & AUTO_SLEEP更改为_cmd_write_0(POWER_CTL, 0x30),功耗会降到1ua以下,但是所有功能(除DATA_READY外)都无法正常使用了。

#include #include //Keil library #include //Keil library #include #define uchar unsigned char #define uint unsigned int #define DataPort P0 //LCD1602数据端口 sbit SCL=P1^0; //IIC时钟引脚定义 sbit SDA=P1^1; //IIC数据引脚定义 sbit LCM_RS=P2^0; //LCD1602命令端口 sbit LCM_RW=P2^1; //LCD1602命令端口 sbit LCM_EN=P2^2; //LCD1602命令端口 #define SlaveAddress 0xA6 //定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改 //ALT ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A typedef unsigned char BYTE; typedef unsigned short WORD; BYTE BUF[8]; //接收数据缓存区 uchar ge,shi,bai,qian,wan; //显示变量 int dis_data; //变量 void delay(unsigned int k); void InitLcd(); //初始化lcd1602 void Init_ADXL345(void); //初始化ADXL345 void WriteDataLCM(uchar dataW); void WriteCommandLCM(uchar CMD,uchar Attribc); void DisplayOneChar(uchar X,uchar Y,uchar DData); void conversion(uint temp_data); void Single_Write_ADXL345(uchar REG_Address,uchar REG_data); //单个写入数据 uchar Single_Read_ADXL345(uchar REG_Address); //单个读取内部寄存器数据 void Multiple_Read_ADXL345(); //连续的读取内部寄存器数据 //------------------------------------ void Delay5us(); void Delay5ms(); void ADXL345_Start(); void ADXL345_Stop(); void ADXL345_SendACK(bit ack); bit ADXL345_RecvACK(); void ADXL345_SendByte(BYTE dat); BYTE ADXL345_RecvByte(); void ADXL345_ReadPage(); void ADXL345_WritePage(); //-----------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值