두 개의 IR 거리 센서가있는 ST269 마이크로 컨트롤러를 프로그래밍하고 있습니다. 이 센서를 보정하기 위해 측정 한 거리와 ADC에서 얻은 해당 값을 사용하여 각 센서에 대해 하나의 테이블을 만들었습니다.다차원 배열을 다른 C 배열로 복사하는 중 구문 오류가 발생했습니다
이제는 중간에 값을 근사화하는 함수를 하나 사용하고 싶습니다. 그래서 우리는 두 개의 2 차원 배열 (각 센서에 하나씩)을 전역 변수로 정의했습니다. 우리 함수에서 우리는 우리가 작업하고자하는 하나의 배열을 작동하는 배열로 복사하고 우리의 값을 근사화하고자합니다.
그래서 여기에 코드입니다 :
...
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;
...
}
이 코드는 파일이라고 sensor.c입니다. 우리는 sensor.h에 우리의 전역 배열에 대해 아무것도 쓰지 않았다. sensor.h는 물론 main.c에 포함되어 있으며 함수가 호출됩니다.
우리는 또한방어 적이기를 통해 배열을 복사하려고 (working_array, ir_werte_li,는 sizeof (working_array));
우리가 이렇게 모든면에서 우리가
unsigned int y1 = 0;
를 선언하고 우리는 어디 라인에서
syntax error near unsigned
을 얻고 내가 어떤 구문 오류이에 없다는 것을 확신 줄 :)
마지막으로 C로 코딩하는 데 몇 년이 걸렸으므로 우리가이 작업을 수행하는 방식이 좋은지 확실하지 않습니다. 포인터를 사용하여 실제로 배열을 복사하는 대신이 방법을 사용할 수 있습니다. 그래서 제발 나를 도와주세요.
Pre-C99 예, C99에서는 선언을 자유롭게 배치 할 수 있습니다. –
Georg를 찾아 주셔서 감사합니다. 그에 따라 대답을 수정했습니다. –
고맙습니다. 지금해야 할 일은 우리 로봇을 다시 얹을 수있는 기회를 얻기 위해 일주일을 기다리는 것뿐입니다. – mantuko