Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 // Author: kasturir@ucla.edu (Kasturi Rangan Raghavan) 00002 // \file 00003 // QRSDet library ported to OOP 00004 // Allows easy adjustment of sampling rates 00005 00006 #include <mbed.h> 00007 #include <scmRTOS.h> 00008 #include <qrsdet/qrsdet2-inl.h> 00009 00010 AnalogIn ecg_in(p20); 00011 DigitalOut led1(LED1); 00012 DigitalOut led2(LED2); 00013 PwmOut led3(LED3); 00014 DigitalOut led4(LED4); 00015 00016 00017 typedef OS::process<OS::pr0, 200> TEcgSampler; 00018 00019 TEcgSampler EcgSampler; 00020 00021 OS::TEventFlag ecg_sampler_ef; 00022 00023 int main() { 00024 OS::Run(); 00025 } 00026 00027 template<> OS_PROCESS void TEcgSampler::Exec() { 00028 float float_val; 00029 int int_val; 00030 qrsdet::QRSFilterParams qrs_filter_params(8.0); 00031 qrsdet::QRSDet2 *qrs_filter = 00032 new qrsdet::QRSDet2(qrs_filter_params); 00033 qrsdet::DelayFilter *delay_filter = new qrsdet::DelayFilter(45); 00034 for(;;) { 00035 ecg_sampler_ef.Wait(); 00036 led2 = !led2; 00037 float_val = ecg_in.read(); 00038 int_val = float_val * 128; 00039 int qrs_val = qrs_filter->Process(int_val); 00040 int delay_val = delay_filter->Process(int_val); 00041 led3 = delay_val/128.0; 00042 if (qrs_val > 0) led4 = !led4; 00043 00044 } 00045 } 00046 00047 void OS::SystemTimerUserHook() { 00048 static int cnt=0; 00049 if (++cnt == 8) { 00050 cnt = 0; 00051 led1 = !led1; 00052 ecg_sampler_ef.Signal(); 00053 } 00054 } 00055 00056 void OS::IdleProcessUserHook() { 00057 __WFI(); 00058 }
Generated on Tue Jul 12 2022 20:36:21 by
1.7.2