下面这段程序是关于实时数据采集的,问题就出在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语句的形式是否可以满足要求? |