You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
zhaohe b0305a1be3 update 1 year ago
.vscode sample_data_mgr_write 写入测试ok 1 year ago
app update 1 year ago
ble_app_uart_c update 1 year ago
libznordic@e16602d90e sample_data_mgr_write 写入测试ok 1 year ago
res 完成显示基本组件 1 year ago
sdk@45186701cd update 1 year ago
.clang-format format code 1 year ago
.gitignore format code 1 year ago
.gitmodules update 1 year ago
README.md update 1 year ago
SSD1312_Datasheet (1).pdf update 1 year ago
TXW64128-41-TSWG13P096G-A-VER1.0.pdf update 1 year ago
ads1293.pdf update 1 year ago
m24m02-dr.pdf 完成单导底层驱动程序 1 year ago

README.md

conduction1_dynamic_electrocardiograph

使用说明

https://iflytop1.feishu.cn/wiki/Fp0fwciUEibtm4kaUeXcraOCneg

开发板IO资源说明:

#define BSP_LED_0      13
#define BSP_LED_1      14
#define BSP_LED_2      15
#define BSP_LED_3      16

#define BUTTON_1       11 // 上拉低电平有效
#define BUTTON_2       12 // 上拉低电平有效
#define BUTTON_3       24 // 上拉低电平有效
#define BUTTON_4       25 // 上拉低电平有效

sdk\components\boards\pca10100.h

清风开发板

        AIN2 -> 光感

I2C
#define TWI_SCL_M           28         //I2C SCL引脚
#define TWI_SDA_M           30         //I2C SDA引脚

------------------------------------

      
PIN4  PIN30/PIN31 PIN28/PIN29 PIN11/PIN20




设备行为:
1. 按下按键或者电极触发后开始广播

2. 当电极没有触发,且蓝牙没有连接,且超时10s后,停止广播,进入低功耗模式

3. 设备状态

        关机(休眠)
        开机蓝牙未连接(广播中)
        蓝牙已连接


难点:
        1.采样间隔2ms (500HZ)
        2.数据往flash中写入时间消耗,cache选择多大,数据什么时候上报。
        1. ADC:单次采样,阻塞拿数值(50us)
        2. 电池电量的采集ADC和电压采集ADC用的是同一个ADC

        (这里先使用最简单的阻塞式ADC采集,电池ADC3次,采样ADC3次)



屏幕驱动:
https://github.com/libdriver/ssd1306
1306驱动和1312是一样的,只不过1312默认是镜像的


UI元素:
-------------------
1. 不同大小的字体
2. 进度条
3. [X]
4. APP
-------------------


1. 进度条
2. 圈,x
3. 时间
4. LOGO
5. [X]
6. HR
7. APP查看结果
8. 年月日/时分秒
9. 不同大小的字体


xxx
+xx


     LOGO
     进度条

    年月日
      时分秒

    
    保持静止
    ___________
    [=====     ]
    ------------

    心电图
    [=====     ]

        [X]
     不足30秒
    
    正在保存
    [=====     ]

    APP
    查看结果
存储:
1帧
2byte
200帧
400byte 
1秒
400byte
30秒
12kbyte
120秒
48kbyte

----------------------------
2Mbit
256Kbyte

640秒 /120 = 5条记录

256kbyte

256byte索引

[
   ID:[年月日]
   packetOFF:[]
   usage[]:
   date:[]
]
48kbyte --> 一个扇区

256/4k = 64个扇区 10s数据

openStorage(年月日)
writeData(){

// 数据量是否大于最大数值

// 是否还有空间
// 擦除旧的空间
// 写入数据
// 写入缓存

// 是否刷新缓存?

找到空闲扇区,写入数据。
找不到空闲扇区,按照顺序释放旧的扇区
重新寻找扇区
}

// 倍数读取
readData(){
        1. 判断数据在哪个扇区
        3. 读取扇区数据信息
        2. 读取数据
        3. 拷贝数据
}

// Header

[
        usage:
        fileHeaderdata:
        fileId:
        dataoff:
        datalen:
]

{
        fileUUID:年月日时分秒
        sector:[1,2,3,4,5]
        datalen: 100
        //分辨率
        //总时长
        //采样率
}


硬件异常:
        1. eeprom读写失败
        2. 电池电量低