Arduino 스케치를 사용하여 C 파일에 포함 된 함수를 호출하는 방법이 있는지 알고 싶습니다.
내 C 파일은 함수를 선언하고 정의합니다. 지저분한 함수 정의를 Arduino 스케치에 저장하기 위해 스케치에서 바로 함수를 호출하고 싶습니다.
Arduino와 C를 사용 하여이 작업을 수행하는 표준 방법이 있습니까? 스케치는 다음과 같습니다.
#include "crc16.h";
void setup(){
}
void loop(){
CalculateCRC16("<09M", 4);
}
그리고 이것은 잘린 C 파일입니다.
#include <stdio.h>
#include <stdint.h>
uint16_t crctable[256] =
{
0x0000, 0x1189,.....
uint16_t // Returns Calculated CRC value
CalculateCRC16( // Call example CalculateCRC16("<09M", 4);
const void *c_ptr, // Pointer to byte array to perform CRC on
size_t len) // Number of bytes to CRC
{
uint16_t crc = 0xFFFF // Seed for CRC calculation
const uint8_t *c = c_ptr;
while (len--)
crc = (crc << 8) ^ crctable[((crc >> 8) ^ *c++)];
return crc;
}
파일에서 C ++ 대신 C를 사용해야하는 이유가 있습니까?
—
피터 블룸필드
사실 맞아요. 내가 C를 사용하여 파일을 컴파일 할 때 ++, 거기에 오류가 있습니다,하지만 오류는 라인에 의해 발생 C.에 오류가 무료입니다 :
—
user_name
const void *c_ptr
와 const uint8_t *c = c_ptr;
. 오류 메시지는 유형 간 잘못된 변환을 언급합니다.
오류를 생성하는 2 개의 코드 파일 (또는 간단한 최소 버전)을 게시하고 오류 메시지를 완전히 복사하여 붙여 넣을 수 있습니까?
—
drodri
오류 메시지가 너무 예쁘지 않습니다 :
—
user_name
In function uint16_t CalculateCRC16(uint16_t, const void*, size_t)': 46 invalid conversion from
const void * 'toconst uint8_t*' In function int main()': 57 system' undeclared (first use this function) (Each undeclared identifier is reported only once for each function it appears in.)