文件写入/读取的速度有多快

时间:2011-03-24 08:23:12

标签: c microcontroller

我被赋予了使用C编程的微控制器(使用PSIM)构建正弦发生器的任务。所以在我的函数中,我正在计算所需的值并将它们存储在[25]数组中。函数从某个元素接收当前时间,并根据我需要从数组中选择适当元素的时间。我无法想到获取元素位置的不同方式,而不是从文件中读取它然后用新文件重写。但系统能够每秒执行5000次此操作吗?

函数计算数组:

int main(){
    double amp = 128;                             
    float norm[25];
    float s;
    int i;

    for(i=0; i< 25; i++){
        if(i == 0){
            norm[i] = 0;
        }
        norm[i] = i*2*M_PI/100;
        s = amp*sin(norm[i]);
        norm[i] = s;
    }

    return 0;  
}

控制器中主要功能的模板:

__declspec(dllexport)opc1(double t, double dt, double *in, double *out){
    double u = in[0];
    //this value should be read from the array according to the counter position
    out[0] = y;
}

1 个答案:

答案 0 :(得分:1)

无法理解使用文件的必要性。让微控制器每秒执行5,000 open()read()close()次操作(或等效操作)似乎是一项非常严格的要求。假设它以20 MHz的频率运行,那么它将提供4,000个周期来执行所有操作。

如果一个人强加一些非常严格的限制,可能并非不可能,但不太可能。特别是考虑到该计数包括磁盘的任何设备驱动程序(或任何媒体保存文件)所做的工作。

如果在每次调用之间没有加载/卸载代码,为什么不使用static变量来存储状态?