Tôi muốn biết liệu có cách nào để gọi các hàm được chứa trong các tệp C bằng cách sử dụng bản phác thảo Arduino không?
Tập tin C của tôi khai báo và định nghĩa một hàm. Để tiết kiệm việc đưa định nghĩa hàm lộn xộn vào bản phác thảo Arduino của tôi, tôi muốn gọi hàm này ngay từ bản phác thảo.
Có một cách tiêu chuẩn để làm điều này bằng cách sử dụng Arduino và C? Đây là bản phác thảo:
#include "crc16.h";
void setup(){
}
void loop(){
CalculateCRC16("<09M", 4);
}
và đây là tập tin C được cắt bớt:
#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;
}
const void *c_ptr
và const uint8_t *c = c_ptr;
. Thông báo lỗi đề cập đến một chuyển đổi không hợp lệ giữa các loại.
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.)