Snazim sa o rozbehanie komunikacie medzi Arduinom a zariadenim po CANbus-e.
Priklad na odoslanie dat sa tvari funkcne,ale...
Spravu vysiela cyklicky a nie iba raz za 100ms(tak,ako by som chcel).
Navyse,sprava je konstantna a nemeni sa podla poziadavky,teda taka,ako je definovana na zaciatku pri inicializacii pola.
Viete mi poradit,kde je zrada?
Modul pouzivam tento:
https://www.ebay.com/itm/MCP2515-CAN-Bu ... 2749.l2649
Toto je moj kod:
Kód: Vybrať všetko
// demo: CAN-BUS Shield, send data
#include <mcp_can.h>
#include <SPI.h>
MCP_CAN CAN0(10); // Set CS to pin 10
INT8U stmp[8] = {0, 1, 2, 3, 4, 5, 6, 7};
INT8U a=255;
void setup()
{
Serial.begin(115200);
// init can bus, baudrate: 500k
if(CAN0.begin(CAN_500KBPS, MCP_8MHz) == CAN_OK) Serial.print("can init ok!!\r\n");
else Serial.print("Can init fail!!\r\n");
}
void loop()
{
// send data: id = 0x00, standrad flame, data len = 8, stmp: data buf
stmp[0]=a;a++;if(a>255)a=0;
Serial.println(String(stmp[0])+' '+stmp[1]+' '+stmp[2]+' '+stmp[3]+' '+stmp[4]+' '+stmp[5]+' '+stmp[6]+' '+stmp[7]);
CAN0.sendMsgBuf(0x00, 0, 8, stmp);
delay(100); // send data per 100ms
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/