cs1180的arduino驱动程序

#define cs      2 //CS1180片选,低电平有效

#define sdi 3 //CS1180数据输入

#define sdo 4 //CS1180数据输出

#define sclk 5 //CS1180时钟

#define drdy 6 //CS1180数据准备就绪,低电平有效

//写一个字节

void WriteSPI_CS1180(unsigned char DData)

{

unsigned char i;

//sclk=HIGH;

digitalWrite(sclk,HIGH);

for(i=8;i>0;i--)

{

//sdi=(bit)(DData & 0x80);

digitalWrite(sdi,highByte(DData & 0x80));

DData<<=1;

//sclk=LOW;

digitalWrite(sclk,LOW);

//Delay5us();

delayMicroseconds(5);

//sclk=HIGH;

digitalWrite(sclk,HIGH);

//Delay5us();

delayMicroseconds(5);

}

}

//读一个字节

unsigned char ReadSPI_CS1180(void)

{

unsigned char tempdata=0;

unsigned char i=0;

//sclk=HIGH;

digitalWrite(sclk,HIGH);

for(i=8;i>0;i--)

{

tempdata<<=1;

//sclk=LOW;

digitalWrite(sclk,LOW);

//Delay5us();

delayMicroseconds(5);

tempdata |=digitalRead(sdo);

//sclk=HIGH;

digitalWrite(sclk,HIGH);

//Delay5us();

delayMicroseconds(5);

}

return tempdata;

}

//初始化CS1180

void init_CS1180()

{

//cs=0;

digitalWrite(cs,LOW);

WriteSPI_CS1180(0xfe); //发送芯片复位指令

//Delay5ms();

delay(5);

WriteSPI_CS1180(0x50); //写寄存器首地址

WriteSPI_CS1180(0x02); //写入寄存器的数量为2+1=3

//WriteSPI_CS1180(0x52);

WriteSPI_CS1180(0x06); //增益64

WriteSPI_CS1180(0x01); //正常使用,配置01

WriteSPI_CS1180(0x24); //双极性

//Delay5ms();

delay(5);

//while(drdy);

//while(drdy);

while(digitalRead(drdy)==HIGH);

while(digitalRead(drdy)==HIGH);

ReadSPI_CS1180(); //空读一次,做抛弃处理,因为第一次读数不正确

//Delay5ms();

delay(5);

}

//读AD值

void GetAD_CS1180()

{

unsigned char ad[3];

//while(drdy);

while(digitalRead(drdy)==HIGH);

WriteSPI_CS1180(0x01);

//Delay5us();

delayMicroseconds(5);

ad[0]=ReadSPI_CS1180();

ad[1]=ReadSPI_CS1180();

ad[2]=ReadSPI_CS1180();

//ad[3]=PINSWITCH;

/*

sendChar(0x0C);

sendChar(0x55);

sendChar(ad[0]); //High byte

sendChar(ad[1]); //Middle byte

sendChar(ad[2]); //Low byte

sendChar(ad[3]); //Low byte

sendChar((0x0C+0x55+ad[0]+ad[1]+ad[2]+ad[3]) & 0xff);

*/

Serial.println((ad[0]<<16)+(ad[1]<<8)+ad[2]);

// Serial.println(ad[1]);

//Serial.println(ad[2]);

}

void setup()

{

pinMode(cs,OUTPUT);

pinMode(drdy,INPUT);

pinMode(sclk,OUTPUT);

pinMode(sdi,OUTPUT);

pinMode(sdo,INPUT);

init_CS1180();

Serial.begin(9600);

}

void loop()

{

GetAD_CS1180();

}

				
时间: 2024-08-09 20:35:17

cs1180的arduino驱动程序的相关文章

飞控遥控器原型

最近打算折腾飞控,找了找资料和淘宝,发现一个飞控遥控器都要500起步,实在莫名奇妙,研究了下,没啥新奇,就自己做吧 看看效果,只是原型,还要做PCB,目前尺寸还是很占空间的. 遥控器:1个arduino UNO+2个旋转电位器开关+1个2.4G信号发射器+1块面包板 接收端:1个LED灯+1个舵机+1个arduino UNO+1个2.4G信号接收器+1块面包板 元器件都是能买到的,单算遥控器端的话,成本在30-40之间. 遥控器代码: #include <SPI.h> #include <

Arduino入门笔记【1】

刚刚接触这个东西只知道这是类似于单片机的开发板,可以做一些单片机实现或者不能实现的东西,但是比单片机要简单得多. Arduino到底是什么? 维基百科上的描述是:Arduino是一块开发板的微控制器和一整套的开发软件,它的硬件包含一个以AVR单片机为核心的开发板和其他各种I/O板.软件包括一个标准编程语言开发环境和在开发板上运行的烧录程序. 简单的说,Arduino包括了硬件和软件,拥有自己的硬件和开发软件. 第一件事: 拿到开发板后的第一件事就是使用它,首先要将它和电脑连接起来.在这之前需要了

在Windows上安装Arduino的步骤

在64位Windows 10机器上测试 Windows Installer从arduino.cc下载并安装最新的Arduino IDE 从git-scm.com下载并安装Git 开始Git GUI并运行以下步骤: 选择 Clone Existing Repository 选择源和目的地 来源地点:https://github.com/espressif/arduino-esp32.git 目标目录: E:/software/Arduino/hardware/espressif/esp32 如果在

Arduino 在amd64 win8.1上驱动安装失败的解决办法

在手动更新驱动程序时提示系统无法找到系统文件 问题原因: 我们可以打开 C:\Windows\inf\setupapi.dev 打开硬件安装日志.找到最后一条记录,我们会发现如下错误: sto:                Copying driver package files to 'C:\Users\ADMINI~1\AppData\Local\Temp\{7ff41925-97db-1c6a-d5be-311dd1322b22}'. inf:                Opened

arduino入门套件学习过程-安装配置

arduino作为非常火的开源软硬件,有其巨大的优势和前景. 我呢,近期正好需要用arduino做一些小东西,借此机会,分享我的arduino学习历程,欢迎各位朋友一起讨论,指点! 现在进入正题: 这是一套arduino的入门套件,内容比较齐全,各种元器件还挺全的,作为入门学习是不错的了. 通过自带的项目来熟练是个不错的途径,可以迅速的了解具体的使用方法,快速上手.   打开盒子里面是布置整齐的器件,还是摆放的很有美感的~ 核心就是那个蓝色的uno板子,有对于板子的大概的介绍.   还有配套的书

ENC28j60以太网芯片驱动程序简介

ENC28j60以太网芯片驱动程序简介 ENC28J60 驱动开发要点 enc28J60 和 Arduino (1)——ping通你的Arduino MCU51单片机uIP协议栈+ENC28J60网卡 移植.应用

win7下Arduino Mega 2560驱动安装失败解决办法

因为玩四轴用的apm的飞控板,而其需要安装此驱动,曾经在win8使用其,但是因为win8有相对应的数字证书保护措施(应该是这样的,因为好久了记不清楚了),以至于我每次都需要长按shift重启电脑关闭此功能,后来装了Ubuntu,用的Ubuntu引导的win8,这样就直接导致了会调不出来此选项,所以在另一台电脑上就放弃了win8,改用win7和Ubuntu并存,win7没有此保护措施. now,我们开始正题. first,要知道自己的报错类型,我的是,找不到系统指定文件, 大部分都是报此错误,其他

关于arduino的驱动安装问题

在精简版windows系统中,window系统删掉了一些不常用的驱动信息,所以导致安装时出现: " 已找到设备的驱动程序软件,但是安装时出现问题,系统找不到指定的文件" 具体解决方法: 1:找到 C:\windows\inf\setupapi.dev.log   这个文件包含设备驱动安装的信息,所以他记载了arduino驱动安装失败的原因.一般在文件末尾附件有记载. 2:在  C:\Windows\System32\DriverStore\FileRepository 路径上新建一个以

Kienct与Arduino学习笔记(1) 基础知识之Arduino’Kinect‘Processing

转载请注明出处:http://blog.csdn.net/lxk7280         首先,对即将要用到的主要东西进行初步的理解. 分为两大类,硬件和软件.硬件,即Kinect.软件,即Arduino和Processing.Arduibo相信很多人都用过,机器人.四轴飞行器等电子产品不少与Arduino这个浪漫的编译器有联系,为什么说浪漫呢,这不得不从它的开发者说起,Arduino的开发者可以说是艺术家出身,所以Arduino总给人一种浪漫高贵的感觉,不得不吐槽一下Keil,界面确实不怎么好