资源简介
cc2530编写ZigBee无线传输时需要采用AD测出电压
代码片段和文件信息
#ifdef _ADXL345_
#include “ADXL345.h“
#include
#include “OnBoard.h“
#ifdef ZDEBUG
#include “MyDebug.h“
#endif
//使用的端口,请按照以下接线
#define SCL P1_3 //IIC时钟引脚定义
#define SDA P1_2 //IIC数据引脚定义
#define SDADirOut {P1SEL&=~0x04;P1DIR|=0x04;}//通用IO输出
#define SDADirIn {P1SEL&=~0x04;P1DIR&=~0x04;}
#define SCLDirOut {P1SEL&=~0x08;P1DIR|=0x08;}
#define SlaveAddress 0xA6 //定义器件在IIC总线中的从地址(读)
uint8 BUF[8];
/*add by wb -2.22*/
#define Register_ID 0
#define Register_2D 0x2D
#define Register_X0 0x32
#define Register_X1 0x33
#define Register_Y0 0x34
#define Register_Y1 0x35
#define Register_Z0 0x36
#define Register_Z1 0x37
int X0X1X_out;
int Y0Y1Y_out;
int Z1Z0Z_out;
double XgYgZg;
/*add by wb*/
uint8 geshibaiqianwan;
int dis_data;
void WriteSDA1(void)//SDA 输出1
{
SDADirOut;
SDA=1;
}
void WriteSDA0(void)//SDA 输出0
{
SDADirOut;
SDA=0;
}
void WriteSCL1(void)//SCL 输出1
{
SCLDirOut;
SCL=1;
}
void WriteSCL0(void)//SCL 输出1
{
SCLDirOut;
SCL=0;
}
/**************************************
延时1微秒
不同的工作环境需要调整此函数,注意时钟过快时需要修改
当改用1T的MCU时请调整此延时函数
**************************************/
#pragma optimize=none
void Delayus(uint16 usec)
{
usec >>= 1;
while(usec--)
{
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 ADXL345_Start(void)
{
WriteSDA1(); //拉高数据线
WriteSCL1(); //拉高时钟线
Delayus(5); //延时
WriteSDA0(); //产生下降沿
Delayus(5); //延时
WriteSCL0(); //拉低时钟线
Delayus(5);
}
/**************************************
停止信号
**************************************/
void ADXL345_Stop(void)
{
WriteSDA0();
Delayus(5);
WriteSCL1();
Delayus(5);
WriteSDA1();
Delayus(5);
WriteSDA0();
Delayus(5);
}
/**************************************
发送应答信号
入口参数:ack (0:ACK 1:NAK)
**************************************/
void ADXL345_SendACK(char ack)
{
WriteSCL0();
Delayus(5);
SDADirOut;
SDA = ack; //写应答信号
Delayus(5); //add by wb
WriteSCL1(); //拉高时钟线
Delayus(5); //延时
WriteSCL0(); //拉低时钟线
Delayus(5); //延时
}
/**************************************
接收应答信号
**************************************/
uint8 ADXL345_RecvACK(void)
{
WriteSDA1();
SDADirIn;
Delayus(5);
WriteSCL1();
Delayus(5);
if(SDA)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 939 2014-02-22 15:52 ADXL345.h
文件 8746 2014-02-22 15:54 ADXL345.c
----------- --------- ---------- ----- ----
9685 2
相关资源
- TI Z-Stack中的OSAL纯净版
- ZigBee CC2530 12864液晶串行程序
- CC2530产生随机数修正版
- BH1750 for CC2530
- CC2530与HC-SR04超声波模块通信
- ZigBee CC2530视频教程
- CC2530流水灯实验
- cc debugger 32位 64位
- 基于CC2530 及ZigBee 协议栈设计无线网络
- CC2530 URAT2串口源程序
- CC2530驱动DHT11自己整理编写简单易懂
- CC2530+2401 带PA的ZIGBEE。提供PCB板与原理
- CC2530zigbee_gy2561_ds18b20_am2302_mg811
- CC2530 无线串口实现
- cc2530驱动中景园0.96寸OLED屏幕
- 基于cc2530的HMC5883L程序 测量地磁 I2C通
- CC2530+DHT11+HCSR04+蜂鸣器+串口显示=简单
- cc2530驱动EEPROMAT24C64读写
- CC2530 Flash操作程序
- 基于中断的CC2530的收发程序
- ZigBee 远程控制 APK CC2530 安卓
评论
共有 条评论