我被赋予了使用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;
}
答案 0 :(得分:1)
无法理解使用文件的必要性。让微控制器每秒执行5,000 open()
,read()
和close()
次操作(或等效操作)似乎是一项非常严格的要求。假设它以20 MHz的频率运行,那么它将提供4,000个周期来执行所有操作。
如果一个人强加一些非常严格的限制,可能并非不可能,但不太可能。特别是考虑到该计数包括磁盘的任何设备驱动程序(或任何媒体保存文件)所做的工作。
如果在每次调用之间没有加载/卸载代码,为什么不使用static
变量来存储状态?