开发者

Syntax error while copying an multidimensional array to another in C

We are programming a ST269 microcontroller which has two IR distance sensors. To calibrate these sensors we made one table for each sensor with the distance we measured and the corresponding value we get from the ADC.

Now we want to use one function to approximate the values in between. So we defined two two-dimensional arrays (one for each sensor) as global variables. In our function we then want to copy the one array we want to work with to a working array and approximate our values.

So here's t开发者_Go百科he code:

...

unsigned int ir_werte_re[][] = {
    {8,553}, 
    ...
    {83,133}
};

unsigned int ir_werte_li[][] = {
    {8,566}, 
    ...
    {83,147}
};

...

unsigned int geradenaproximation(unsigned int messwert, unsigned int seite)
{
    unsigned int working_array[16][16];
    unsigned int i = 0;

    if (seite == 0) {
        for (i = 0; i < sizeof(working_array); i++) {
            working_array[i][0] = ir_werte_li[i][0];
            i++;
        }
    }
    else {
        for (i = 0; i < sizeof(working_array); i++) {
            working_array[i][0] = ir_werte_re[i][0];
            i++;
        }
    }

    i = 0;
    unsigned int y1 = 0;
    unsigned int x1 = 0;
    ...
}

This code is in a file called sensor.c. We didn't write anything about our global arrays in the sensor.h should we? The sensor.h of course is included in our main.c and there the function is called.

We also tried to copy the arrays via

memcpy(working_array, ir_werte_li, sizeof(working_array));

And in every way we do this we get a

syntax error near unsigned

in the line where we're declaring

unsigned int y1 = 0;

and I'm pretty sure that there is no syntax error in this line : )

The last time I spend coding in C is a few years away so I'm not sure if the way we try to do this is good. Perhaps we can solve this by using a pointer instead of really copying the array or something. So please help me out I'll appreciate your bits on this.


In C (pre-C99), all variable definitions must appear at the top of the current block scope.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜