基于ADS1292芯片的解决方案之源码解析
//DRDY中断初始化
EXTI_ClearITPendingBit(EXTI_Line8);//清除中断标志
GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource8);//选择管脚
EXTI_InitStructure.EXTI_Line=EXTI_Line8; //选择中断线路
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //设置为中断请求,非事件请求
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //外部中断使能
EXTI_Init(&EXTI_InitStructure); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; //选择中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //子优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道
NVIC_Init(&NVIC_InitStructure);
void ADS1292_PowerOnInit(void)
{ // ADS_CLKSEL=1;//启用内部时钟
// ADS_START=0; //停止数据输出
// ADS_RESET=0; //复位
// delay_ms(1000);
// ADS_RESET=1;//芯片上电,可以使用
// delay_ms(100); //等待稳定 ADS1292_Send_CMD(SDATAC);//发送停止连续读取数据命令
delay_ms(100);
ADS1292_Send_CMD(RESET);//复位
delay_s(1);
ADS1292_Send_CMD(SDATAC);//发送停止连续读取数据命令
delay_ms(100);
//ADS1292_Send_CMD(STANDBY);//进入待机模式
}
B 初始化完成之后,就可以进行数据读取和解析了。这部分的数据如下所示:
while(Set_ADS1292_Collect(0))//0 正常采集 //1 1mV1Hz内部侧试信号 //2 内部短接噪声测试
{
// printf("ADS1292寄存器设置失败\r\n");//串口打印调试使用
delay_s(1);
DS3 =!DS3;//PC13端口接LED,用于指示ADS1292 初始化状态
}
C 该adc有三种数据采集模式,具体如下所示,三种模式,对应的不同调试信息。
//配置ads1292采集方式
u8 Set_ADS1292_Collect(u8 mode)
{
u8 res; delay_ms(10);
switch(mode)//设置采集方式
{
case 0:
res =ADS1292_Single_Read();
break;
case 1:
res =ADS1292_Single_Test();
break;
case 2:
res =ADS1292_Noise_Test();
break;
}
if(res)return 1; //寄存器设置失败
ADS1292_Send_CMD(RDATAC); //启动连续模式
delay_ms(10);
ADS1292_Send_CMD(START); //发送开始数据转换(等效于拉高START引脚)
delay_ms(10);
return 0;
}
//使能FIR带通滤波
ecg_fir_res = ecg_fir_tilter(ecg_avr); //FIR带通滤波
ecg_avr_long=filter1(ecg_fir_res); //滤除50Hz,1秒滑窗内的平均值,作为去直流的基线
ecg_fir_res = ecg_fir_res - ecg_avr_long; //去直流
基于ADS1292芯片的解决方案之源码解析的更多相关文章
- t-io 集群解决方案以及源码解析
t-io 集群解决方案以及源码解析 0x01 概要说明 本博客是基于老谭t-io showcase中的tio-websocket-showcase 示例来实现集群.看showcase 入门还是挺容易的 ...
- Java泛型底层源码解析-ArrayList,LinkedList,HashSet和HashMap
声明:以下源代码使用的都是基于JDK1.8_112版本 1. ArrayList源码解析 <1. 集合中存放的依然是对象的引用而不是对象本身,且无法放置原生数据类型,我们需要使用原生数据类型的包 ...
- 豌豆夹Redis解决方案Codis源码剖析:Dashboard
豌豆夹Redis解决方案Codis源码剖析:Dashboard 1.不只是Dashboard 虽然名字叫Dashboard,但它在Codis中的作用却不可小觑.它不仅仅是Dashboard管理页面,更 ...
- Java集合类源码解析:HashMap (基于JDK1.8)
目录 前言 HashMap的数据结构 深入源码 两个参数 成员变量 四个构造方法 插入数据的方法:put() 哈希函数:hash() 动态扩容:resize() 节点树化.红黑树的拆分 节点树化 红黑 ...
- 基于nopCommerce的开发框架(附源码)
.NET的开发人员应该都知道这个大名鼎鼎的高质量b2c开源项目-nopCommerce,基于EntityFramework和MVC开发,拥有透明且结构良好的解决方案,同时结合了开源和商业软件的最佳特性 ...
- Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析
Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析 本文简要介绍了基于 Spring 的 web project 的启动流程,详细分析了 Spring 框架将开发人员基于 XML ...
- String,StringBuffer和StringBuilder源码解析[基于JDK6]
最近指导几位新人,学习了一下String,StringBuffer和StringBuilder类,从反馈的结果来看,总体感觉学习的深度不够,没有读出东西.其实,JDK的源码是越读越有味的.下面总结一下 ...
- 基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建
基于Eclipse IDE的Ardupilot飞控源码阅读环境搭建 作者:Awesome 日期:2017-10-21 需准备的软件工具 Ardupilot飞控源码 PX4 toolchain JAVA ...
- 豌豆夹Redis解决方案Codis源码剖析:Proxy代理
豌豆夹Redis解决方案Codis源码剖析:Proxy代理 1.预备知识 1.1 Codis Codis就不详细说了,摘抄一下GitHub上的一些项目描述: Codis is a proxy base ...
- 基于JDK1.8版本的hashmap源码笔记(二)
这一篇是接着上一篇写的, 上一篇的地址是:基于JDK1.8版本的hashmap源码分析(一) /** * 返回boolean类型的值,当集合中包含key的键值,就返回true,否则就返 ...
随机推荐
- 月薪10K码农,跳槽到40K架构师,技术学习路线图汇总
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.介绍 Hey there! Roadmap to becoming a web devel ...
- 字节码编程,Javassist篇四《通过字节码插桩监控方法采集运行时入参出参和异常信息》
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 字节码编程插桩这种技术常与 Javaagent 技术结合用在系统的非入侵监控中,这样 ...
- Json Schema高性能.net实现库 LateApexEarlySpeed.Json.Schema - 直接从code生成json schema validator
LateApexEarlySpeed.Json.Schema - Json schema validator generation from code 除了用户手动传入标准的json schema来生 ...
- Js将字符串转数字的方式
Js将字符串转数字的方式 Js字符串转换数字方方式主要有三类:转换函数.强制类型转换.弱类型隐式类型转换,利用这三类转换的方式可以有5种转换的方法. parseInt() parseInt()和Num ...
- fgrep命令
fgrep命令 当需要搜索包含很多正则表达式元字符的字符串时,例如$.^等,fgrep很有用,其通过指定搜索字符串包含固定字符,从而无需对每个字符进行转义用反斜杠,如果搜索的字符串包含换行符,则每行将 ...
- Springboot集成Swagger实战
1.介绍 本文将通过实战介绍Springboot如何集成swagger2,以用户管理模块为例,实现项目接口文档的在线管理. 项目源码 本文只列出核心部分,详细请看源码: https://gitee.c ...
- B - Bracket Sequence题解
B - Bracket Sequence 思路: 用一个flag来标记括号的数目,如果括号数目是个偶数的话,就代表当前要执行'+'操作,反之就是'*'操作.对于最外层的数,是没有计算的. 所以最后要单 ...
- RCE代码执行漏和命令执行漏洞
前置知识: 漏洞检测: 在了解漏洞概念前,应该先知道一下这个漏洞如何检测的,我们应该或多或少听过白盒测试(白盒),黑盒测试(黑盒). 白盒测试: 白盒测试是对源代码和内部结构的测试,测试人员是可以知道 ...
- win32 - 基于hwnd获取进程名字(GetModuleFileNameEx)
#include <Windows.h> #include <psapi.h> int main() { DWORD process_ID = 0; WCHAR process ...
- 细说Spring框架之核心01-概述
官网:https://spring.io/projects/spring-framework 文档:https://docs.spring.io/spring-framework/docs/curre ...