ADC5513
一 C5513
u32 ADC5513_GetValue(void)
{
u32 ADValue,i;
bool data_bit = false;
C5513_SCK=0;
C5513_CS=0;
if(GPIO_BitRead(C5513_SDO)==0u)
{
for (i = 0; i < 24; i++)
{
C5513_SCK = 1;
data_bit = GPIO_BitRead(C5513_SDO);
C5513_SCK=0;
ADValue <<= 1;
if(data_bit > 0)
{
ADValue|=0x00000001;
}
else
{
ADValue&=~0x00000001;
}
}
ADValue &=~(1<<20) ;/*有效位数为19位*/
Vout=ADValue*2.0*10000/2^19 /*有效电压是2.0,不是2.5V因为内部放大了0.8倍*/
return ADValue;
}
else
{
return (0xffffffff);
}
}
- #include <reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit ADCS=P2^0;
- sbit ADCLK=P2^1;
- sbit ADDO=P2^2;
- unsigned long int ADConv(void)
- {
- uchar i;
- unsigned long int Result=0;
- ADCLK=0;
- ADCS=0;
- _nop_();
- _nop_();
- _nop_();
- ADCLK=0;
- while(ADDO);
- ADCLK=1;
- _nop_();
- for(i=0;i<3;i++){
- ADCLK=0;
- _nop_();
- ADCLK=1;
- }
- for (i=0;i<20;i++){
- ADCLK=0;
- Result=Result<<1;
- if (ADDO)
- Result=Result+1;
- ADCLK=1;
- }
- ADCS=1;
- Result &=~(1<<20) ;/*有效位数为19位*/
- Vout=Result*2.0*10000/2^19 /*有效电压是2.0,不是2.5V因为内部放大了0.8倍*/
- return Result;
- }
ADC5513的更多相关文章
随机推荐
- Workerman安装流程
第一步检测安装环境 curl -Ss http://www.workerman.net/check.php | php 操作结果显示 报错了 需要找到php.ini文件 解决办法如下: 打开 php ...
- BrowserSync(省时的浏览器同步测试工具)
第一步:安装node 第二步:安装BrowserSync npm install -g browser-sync 第三部:启动BrowserSync 假如我在D盘建立一个文件test,里面分别包括in ...
- python 多模块文件共享变量
Python import 包的机制是,import进来的和默认的系统的module了,都放在sys.module这个字典里面. 多个py文件再次import的时候,会先去sys.module里面检查 ...
- 每天一个Linux命令:目录
版权声明 更新:2017-04-19博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 在使用Linux的过程中总是发现有一些L ...
- P2766 [网络流24题]最长不下降子序列问题
ha~ «问题描述: 给定正整数序列$x_1,...,x_n$ .$n<=500$ 求(1)计算其最长不下降子序列的长度$s$. (2)计算从给定的序列中最多可取出多少个长度为$s$的不下降子序 ...
- bzoj 3230 相似子串 —— 后缀数组+二分
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3230 先算出每个后缀贡献子串的区间: 然后前缀LCP直接查询,后缀LCP二分长度,查询即可: ...
- poj3666序列对应——DP
题目:http://poj.org/problem?id=3666 很普通的DP,离散化(sort)一下即可: mn的求法很不错(比我原来开了mn[]……简洁). 代码如下: #include< ...
- 百度地图API的第一次接触——地图事件
0.初始化地图 var map = new BMap.Map("container"); var point = new BMap.Point(116.404, 39.915); ...
- C# Linq 取得两个列表的交集
我们经常会用到linq 来查询 一个数组中和另一个数组中相同的项, 这个时候就会用到IEqualityComparer接口. public class StudyInfoModel { pu ...
- TTS API 使用
#define SPCAT_VOICES L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices" ...