मैं जानना चाहूंगा कि क्या अरडिनो स्केच का उपयोग करके सी फाइलों के भीतर निहित फ़ंक्शन को कॉल करने का एक तरीका है?
मेरी सी फ़ाइल एक फ़ंक्शन को घोषित और परिभाषित करती है। अपने 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;
}
const void *c_ptr
और const uint8_t *c = c_ptr;
। त्रुटि संदेश प्रकारों के बीच एक अमान्य रूपांतरण का उल्लेख करता है।
In function uint16_t CalculateCRC16(uint16_t, const void*, size_t)': 46 invalid conversion from
const v * * 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.)