Vorrei sapere se esiste un modo per chiamare le funzioni contenute nei file C usando uno schizzo di Arduino?
Il mio file C dichiara e definisce una funzione. Per salvare inserendo la definizione della funzione disordinata nel mio schizzo di Arduino, vorrei chiamare la funzione direttamente dallo schizzo.
Esiste un modo standard per farlo usando Arduino e C? Ecco lo schizzo:
#include "crc16.h";
void setup(){
}
void loop(){
CalculateCRC16("<09M", 4);
}
e questo è il file C ridotto:
#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
e const uint8_t *c = c_ptr;
. Il messaggio di errore menziona una conversione non valida tra i tipi.
In function uint16_t CalculateCRC16(uint16_t, const void*, size_t)': 46 invalid conversion from
const void * 'aconst 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.)