打印
[STM32F1]

要采集实时数据该用什么方法呢?

[复制链接]
796|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
感知新生|  楼主 | 2015-9-29 21:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要采集实时数据该用什么方法呢?每秒采集250次数据,每次27个字节,需要实时的写入SD卡。我这个应该怎么在main函数的while循环中写这个采集程序呢?我现在的方法似乎采集的有问题。while循环中的程序如下:
        if((flag&0x0a)==0x0a) {        //每次数据准备好后,产生一次中断,标志位置位
                        ADS1299_Drdy(data_count);    //该函数负责采集数据,每次27个字节
                        if(data_count==count_num)
                        {                       
                                Write_wenjian(p_filename,RBuffer_Num,cache_point);   //收集够一定数量开始写进SD卡
                                data_count=0;
                    }                       
                        flag&=(~ADS_DRDY);                
//                        flag&=(~cache_flag);       
                }
                else if((flag&0x50)==0x50){                                                         //判断开始按键按下

                        p_filename=znFAT_CreateFilename();                                                                         
                        Create_wenjian(p_filename);                                       
                        flag|=start_flag;
                        flag&=(~create_flag);
                        flag&=(~power_start);
                        ADS1299_Start_Pin();
                        ADS1299_RDataC();
                        GPIO_SetBits(GPIOD, GPIO_Pin_6);               
                }
                else if((flag&0x06)==0x06){       
                        GPIO_ResetBits(GPIOD, GPIO_Pin_6);
                        ADS1299_Reset_Pin();
                        ADS1299_Stop_Pin();
                        cache[0]=CountNum;
                        cache[1]=CountNum>>8;
                        cache[2]=CountNum>>16;
                        cache[3]=CountNum>>24;
                        Write_wenjian(p_filename,4,cache_point);
                        znFAT_Close_File(&fileinfo);                                                 
                        znFAT_Flush_FS();                       
                        flag=0x44;                       
                }
沙发
芙蓉洞| | 2015-9-29 21:56 | 只看该作者
实时采集最好不用查询,直接中断

使用特权

评论回复
板凳
感知新生|  楼主 | 2015-9-30 10:55 | 只看该作者
芙蓉洞 发表于 2015-9-29 21:56
实时采集最好不用查询,直接中断

你说的很是,我这个其实是用的中断做标记,然后返回主函数查询接收数据的。如果直接在中断中接收数据会导致在中断中停留过长时间,不符合中断程序原则啊

使用特权

评论回复
地板
yiyigirl2014| | 2015-9-30 11:01 | 只看该作者
通过中断,写入时间头,有变化再写下一个

使用特权

评论回复
5
可可球| | 2015-9-30 11:08 | 只看该作者
关注这个问题,我也真着手做这个呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

36

帖子

2

粉丝