基于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,否则就返 ...
随机推荐
- 为Win12做准备?微软Win11 23H2将集成AI助手:GPT4免费用
微软日前确认今年4季度推出Win11 23H2,这是Win11第二个年度更新. Win11 23H2具体有哪些功能升级,现在还不好说,但它会集成微软的Copilot,它很容易让人想到多年前的" ...
- Linux输出转换命令 xargs
一.基本用法 xargs命令的作用,是将标准输入转为命令行参数. 原因:大多数命令都不接受标准输入作为参数,只能直接在命令行输入参数,这导致无法用管道命令传递参数 如下面 echo 不接受标准输出做参 ...
- SP34020 ADAPET - Ada and Pet 题解
题目传送门 前置知识 前缀函数与 KMP 算法 解法 经检验 样例,我们发现 \(|S|k\) 并不是最优答案. 考虑利用 luogu P4391 [BOI2009] Radio Transmissi ...
- The Missing Semester - 第五讲 学习笔记
第五讲 命令行环境 课程视频地址:https://www.bilibili.com/video/BV1Dy4y1a7BW 课程讲义地址:https://missing-semester-cn.gith ...
- java 注解结合 spring aop 实现自动输出日志
auto-log auto-log 是一款为 java 设计的自动日志监控框架. 创作目的 经常会写一些工具,有时候手动加一些日志很麻烦,引入 spring 又过于大材小用. 所以希望从从简到繁实现一 ...
- Freaktab将于12月底关闭
出过众多优秀固件的电视盒子论坛Freaktab, 将于2021年12月31日关闭 R.I.P
- Git合并固定分支的某一部分至当前分支
在 Git 中,通常使用 git merge 命令来将一个分支的更改合并到另一个分支.如果你只想合并某个分支的一部分代码,可以使用以下两种方法: 1.批量文件合并 1.1.创建并切换到一个新的临时分支 ...
- [技术选型与调研] 流程引擎(工作流引擎|BPM引擎):Activiti、Flowable、Camunda
1 概述:流程与流程引擎 低代码平台.办公自动化(OA).BPM平台.工作流系统均需要[流程引擎]功能 BPM平台与工作流系统的区别,参见本文档:3.2 章节 流程引擎是任务分配软件(例如业务流程管理 ...
- Oracle代码封装工具和DBMS_DDL包的使用
The WRAP Utility and the DBMS_DDL Package On occasion it is necessary to hide (obfuscate) your PL/SQ ...
- Spring Boot学生信息管理系统项目实战-2.字典管理和模板管理
1.获取源码 源码是捐赠方式获取,详细请QQ联系我 :) 2.实现效果 3.项目源码 只挑重点讲,详细请看源码. 3.1 字典管理 字典管理这里分为字典的编码和名称和字典数据的增删改查. 前端页面: ...