打印
[STM32F1]

各位大神,我有一段关于读写实时采集数据的程序,帮忙找找问题

[复制链接]
850|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
感知新生|  楼主 | 2015-9-29 09:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面这段程序是关于实时数据采集的,问题就出在1.采集上来的数据不能及时的写进SD卡;2.停止按键有中断,但是就是不进入第三个if语句运行下面的语句。程序如下:
        while(1){
                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_Flush_FS();
                       
                        flag=0x44;                       
                }
            else if((flag&0x0a)==0x0a) {        //判断数据是否准备好,准备采集
                        ADS1299_Drdy(data_count);
                        if(data_count==count_num)
                        {
                       
                                Write_wenjian(p_filename,RBuffer_Num,cache_point);
                                data_count=0;

                    }
                       
                        flag&=(~ADS_DRDY);                
                }
        }


因为采集的频率比较高 250次/S,所以不知道采取这种if语句的形式是否可以满足要求?
沙发
ccw1986| | 2015-9-29 11:11 | 只看该作者
为何不用ucos ii呢,这样实时性就能保证了

使用特权

评论回复
板凳
奥德赛| | 2015-9-29 11:29 | 只看该作者
按键弄成一个状态,用查表方法去做更好

使用特权

评论回复
地板
boy1990| | 2015-9-29 11:30 | 只看该作者
状态判断不对???

使用特权

评论回复
5
感知新生|  楼主 | 2015-9-29 13:54 | 只看该作者
ccw1986 发表于 2015-9-29 11:11
为何不用ucos ii呢,这样实时性就能保证了

根据测试,应该是软件哪里逻辑出问题了,就是还没有找到,目前上不了ucos系统啊。

使用特权

评论回复
6
感知新生|  楼主 | 2015-9-29 13:55 | 只看该作者
奥德赛 发表于 2015-9-29 11:29
按键弄成一个状态,用查表方法去做更好

您说的查表是指的什么呢?怎么实现?望指教!

使用特权

评论回复
7
感知新生|  楼主 | 2015-9-29 13:57 | 只看该作者
boy1990 发表于 2015-9-29 11:30
状态判断不对???

个个状态判断没有问题,现在怀疑是读写时间的问题,或者是中断过于频繁了(250次/s)?

使用特权

评论回复
8
boy1990| | 2015-10-11 09:55 | 只看该作者
感知新生 发表于 2015-9-29 13:57
个个状态判断没有问题,现在怀疑是读写时间的问题,或者是中断过于频繁了(250次/s)? ...

哦哦 多试试看,现在问题解决了吗??

使用特权

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

本版积分规则

5

主题

36

帖子

2

粉丝