Если ищите помощи приватно, то Вам в раздел "Прием заказов". Если нет, то экстрасенсы на самоизоляции (тренд).
Собака здесь зарыта!
Код: Выделить всё
#include <can.h>
#include <mcp2515.h>
#include <CanHacker.h>
#include <CanHackerLineReader.h>
#include <lib.h>
#include <SPI.h>
#include <SoftwareSerial.h>
const int SPI_CS_PIN = 10;
const int INT_PIN = 2;
const int SS_RX_PIN = 3;
const int SS_TX_PIN = 4;
CanHackerLineReader *lineReader = NULL;
CanHacker *canHacker = NULL;
SoftwareSerial softwareSerial(SS_RX_PIN, SS_TX_PIN);
void setup() {
Serial.begin(115200);
while (!Serial);
SPI.begin();
softwareSerial.begin(115200);
Stream *interfaceStream = &Serial;
Stream *debugStream = &softwareSerial;
canHacker = new CanHacker(interfaceStream, debugStream, SPI_CS_PIN);
//canHacker->enableLoopback(); // uncomment this for loopback
lineReader = new CanHackerLineReader(canHacker);
pinMode(INT_PIN, INPUT);
}
void loop() {
CanHacker::ERROR error;
if (digitalRead(INT_PIN) == LOW) {
error = canHacker->processInterrupt();
handleError(error);
}
error = lineReader->process();
handleError(error);
}
void handleError(const CanHacker::ERROR error) {
switch (error) {
case CanHacker::ERROR_OK:
case CanHacker::ERROR_UNKNOWN_COMMAND:
case CanHacker::ERROR_NOT_CONNECTED:
case CanHacker::ERROR_MCP2515_ERRIF:
case CanHacker::ERROR_INVALID_COMMAND:
return;
default:
break;
}
softwareSerial.print("Failure (code ");
softwareSerial.print((int)error);
softwareSerial.println(")");
digitalWrite(SPI_CS_PIN, HIGH);
pinMode(LED_BUILTIN, OUTPUT);
while (1) {
int c = (int)error;
for (int i=0; i<c; i++) {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
delay(2000);
} ;
}
На такой вопрос зачем ответить сложно. Но попробую объяснить. Вот смотрите: наш уважаемый автор программы сделал блоки для работы с mcp2515 и теперь все могут применять их в своих проектах, хорошо? Конечно хорошо. Но для того чтобы проанализировать что происходит в шине нужен инструмент типа канхакера. Но чтобы получить этот инструмент нужно реально заморочится. Отыскать скетч, библиотеки, причем библиотеку надо еще и поправить, так как по умолчанию она работает с модулем на 16 мгц. А ведь пока я искал в библиотеках что поправить, смотрел инет и там люди не найдя что поправить тупо перепаивали кварц на 16 мгц, хотя надо было просто поменять одно число на другое в библиотеке. И вот сделав это все, вы наконец получаете результат. А теперь представьте, что у вас в флпрог рядом с блоками читать и писать в шину кан, лежит готовый блок, разместив который и в настройках выбрав кварц который у вас в модуле и пару пинов CS и INT, и залив это в ардуину вы получаете готовый интерфейс для работы с программой кан хакер. И после того как вы проанализировав шину и найдя и протестировав там нужные вам данные и ид, вы не выходя из флпрога просто жмакнув в соседнее окно, правите ваш скетч и заливаете в ардуину. Удобно? Хорошо? Нет так нам не надо. Это мы будем делать в флпроге, а вот это в другой программе, потому что уже готовое же есть, зачем напрягаться. Так если рассуждать, так зачем тогда вообще флпрог вам сдался? Пишите все на си, все же есть уже готовое.
Попробуй все с начала работая с IDE расположенной в папке FLProg, не запуская FLprog.
Спасибо большое! Человек с большой буквы! Я как доберусь до работы (модуль mcp2515 у меня на работе лежит) Протестирую в железе и отпишусь. Спасибо еще раз за помощь.
Склеил см. выше.
Да, конечно, безусловно!