Working version of the code !
This commit is contained in:
parent
3805df529b
commit
5110bdd2da
19
SLGreen.ino
19
SLGreen.ino
|
@ -27,17 +27,21 @@
|
||||||
|
|
||||||
MCP_CAN CAN(MCP_CS); // Set CS pin
|
MCP_CAN CAN(MCP_CS); // Set CS pin
|
||||||
|
|
||||||
|
uint8_t CAN_speed = CAN_500KBPS;
|
||||||
|
uint8_t CAN_freq = MCP_8MHZ;
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(SERIAL_SPEED);
|
Serial.begin(SERIAL_SPEED);
|
||||||
|
|
||||||
|
if(CAN.begin(MCP_ANY, CAN_speed, CAN_freq) != CAN_OK) return slcanInvalidRX();
|
||||||
|
CAN.setMode(MCP_NORMAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uint8_t rx_buffer[16] = {0};
|
uint8_t rx_buffer[16] = {0};
|
||||||
uint8_t rx_buffer_len = 0;
|
uint8_t rx_buffer_len = 0;
|
||||||
|
|
||||||
uint8_t CAN_speed = CAN_500KBPS;
|
|
||||||
uint8_t CAN_freq = MCP_8MHZ;
|
bool CAN_active = true;
|
||||||
bool CAN_active = false;
|
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
serialCheckRX();
|
serialCheckRX();
|
||||||
|
@ -212,9 +216,10 @@ void slcanInvalidRX()
|
||||||
Serial.write(7);
|
Serial.write(7);
|
||||||
}
|
}
|
||||||
|
|
||||||
void serialTX(uint8_t *buf, uint8_t len)
|
void serialTX(bool ext, uint8_t *buf, uint8_t len)
|
||||||
{
|
{
|
||||||
Serial.write('T');
|
if(ext) Serial.write('T');
|
||||||
|
else Serial.write('t');
|
||||||
for(int i = 0; i < len; i++)
|
for(int i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
Serial.write(buf[i]);
|
Serial.write(buf[i]);
|
||||||
|
@ -234,7 +239,7 @@ void canCheckRX()
|
||||||
id = id & 0x1FFFFFFF;
|
id = id & 0x1FFFFFFF;
|
||||||
if(id <= 0x7FF) ext = false;
|
if(id <= 0x7FF) ext = false;
|
||||||
|
|
||||||
uint8_t frame[2+len*2+ext*5] = {0};
|
uint8_t frame[4+len*2+ext*5] = {0};
|
||||||
|
|
||||||
if(!ext)
|
if(!ext)
|
||||||
{
|
{
|
||||||
|
@ -264,7 +269,7 @@ void canCheckRX()
|
||||||
frame[(4+ext*5)+i] = (i_bufpos % 2 == 1) ? int2asciiHex(cdata[i_bufpos / 2] >> 4) : int2asciiHex(cdata[i_bufpos / 2] & 0xF);
|
frame[(4+ext*5)+i] = (i_bufpos % 2 == 1) ? int2asciiHex(cdata[i_bufpos / 2] >> 4) : int2asciiHex(cdata[i_bufpos / 2] & 0xF);
|
||||||
}
|
}
|
||||||
|
|
||||||
serialTX(frame, 2+len*2+ext*5);
|
serialTX(ext, frame, 4+len*2+ext*5);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue