PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Общение с машиной

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2018, 01:18   #241
ganson
Новый Пользователь
 
Регистрация: 24.05.2017
Регион: Беларусь
Сообщений: 13
ganson is on a distinguished road
По умолчанию

Вот, навоял. Реагирует на изменения двух байт
void can()
{
if (mcp2515.readMessage(&canMsg) == MCP2515::ERROR_OK) {
if (canMsg.can_id == 0x32A) {
if (canMsg.data[1] == 0x02 && canMsg.data[2] == 0x10) {
Serial.println("Press Vol Up");
digitalWrite(vol_up, HIGH);
}
else{
Serial.println("Unpress Vol Up");
digitalWrite(vol_up, LOW);
}
if (canMsg.data[1] == 0x03 && canMsg.data[2] == 0x20) {
Serial.println("Press Vol Down");
digitalWrite(vol_down, HIGH);
}
else{
Serial.println("Unpress Vol Down");
digitalWrite(vol_down, LOW);
}


}
}
}
На = в дате ругалась, пока не написал ==. И при id = 32A отключало порты от любого сообщения в шине. А если id==32A, то отключает от сообщения с id 32A и датой отличной от прописанной на порты. Правильно вроде получилось написать ?
ganson вне форума   Ответить с цитированием
Старый 25.09.2018, 17:26   #242
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

Да, всё ок.
Яж с телефона пишу, синтаксис не особо проверяю, просто общий смысл доношу.
Да и Arduino IDE не запускал 100 лет.
Я STM32 в СubeMx и IAR пилю.

И ни чего ни кто не отключает.
Сообщение если пришло, то оно хранится в буфере. А вот что с ним делать решать тебе.

Ты задал условие что если id отличается от 0х32А, то внутрь условия не заходить, а внутри этого условия ещё условия которые проверяют содержимое пришедшего пакета.

PS. Кстати из за того, что в Ардуино нельзя задать нормальные фильтры аппаратные на CAN, то бедной атмеге с 12 мегагерцами приходится жрать всё то, что валится из CAN и переваривать это.
Черевато пропусками пакетов. И я даже скажу с уверенностью и проверкой опытным путём что они пропадают! У меня в машине до сих пор Ардуино трудится, уже лет 5 наверное... Ни как на stm не поменяю.
И очень короткие нажатия на кнопки она теряет...

Последний раз редактировалось admin; 28.09.2018 в 21:14.
T_r_D вне форума   Ответить с цитированием
Старый 25.09.2018, 23:14   #243
ganson
Новый Пользователь
 
Регистрация: 24.05.2017
Регион: Беларусь
Сообщений: 13
ganson is on a distinguished road
По умолчанию

Ещё раз спасибо за помощь, завтра в машине уже проверю. STM понравился, делал как то диктофон на нём. Не дорогой, запустилось с первого тычка, отлично работает. Но я больше "паяльщик" и ремонтник, в программах - в ардуино чужой скетч мозгов не хватило поправить. Открыл похожий проект на STM, посмотреть на предмет поправить под себя, посмотрел и закрыл...
ganson вне форума   Ответить с цитированием
Старый 26.09.2018, 02:11   #244
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

Ну не знаю...
Для стм и обвес проще, всего одна микруха трансиверы и если в фильтры не лезть, то только тайминги для can посчитать правильно в кубе...
А вот в коде будет примерно тоже количество строк, но процедура будет вызываться только по приходу пакета. А если настроить фильтры аппаратные, так вообще красота.

Но если скорость не нужна и нужна простота кода и доступность библиотек разных, то тут Ардуино более подходит...
А если есть силы и желание разобраться, то СТМ окупит затраты с лихвой.
T_r_D вне форума   Ответить с цитированием
Старый 01.10.2018, 10:39   #245
НСО154
Старший Пользователь
 
Регистрация: 01.01.2014
Возраст: 38
Город: Новосибирск
Регион: 54
Машина: РРС, Форд
Сообщений: 954
НСО154 is on a distinguished road
По умолчанию

Цитата:
Сообщение от T_r_D Посмотреть сообщение
И очень короткие нажатия на кнопки она теряет...
Скетч твой можно посмотреть, тоже столкнулся с такой проблемой.
Но у меня скорее всего проблемка из за функции "delay", "рубит" работу контроллера, и естественно теряет данные, которые продолжают течь по com.
__________________
Тесла по-русски
НСО154 вне форума   Ответить с цитированием
Старый 01.10.2018, 11:26   #246
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

Да такой же как и на этой странице выше.
Делеев нету и в коде их быть не должно!
Совсем не должно!
Нужно пользоваться таймером.
T_r_D вне форума   Ответить с цитированием
Старый 01.10.2018, 11:31   #247
НСО154
Старший Пользователь
 
Регистрация: 01.01.2014
Возраст: 38
Город: Новосибирск
Регион: 54
Машина: РРС, Форд
Сообщений: 954
НСО154 is on a distinguished road
По умолчанию

Цитата:
Сообщение от T_r_D Посмотреть сообщение
Да такой же как и на этой странице выше.
Делеев нету и в коде их быть не должно!
Совсем не должно!
Нужно пользоваться таймером.
Ну вот и развеял мои сомнения, перепишу.
__________________
Тесла по-русски
НСО154 вне форума   Ответить с цитированием
Старый 02.10.2018, 00:24   #248
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

По слову millis ищи примеры.

Но если в шине идёт активный обмен пакетами, то даже избавление от делея не до конца спасёт.
Ну не способна ардуина на 12 мегагерцах выступать программным фильтром да ещё и что-то делать при этом. Если конечно код включает только слежение за кнопками, то может и нормально будет...
T_r_D вне форума   Ответить с цитированием
Старый 02.10.2018, 08:15   #249
НСО154
Старший Пользователь
 
Регистрация: 01.01.2014
Возраст: 38
Город: Новосибирск
Регион: 54
Машина: РРС, Форд
Сообщений: 954
НСО154 is on a distinguished road
По умолчанию

Функция Millis решила вопрос, данные стабильно считываются, все ок)
Пишут есть ещё лучше библиотеки https://smartmodules.ru/timerone-arduino, что меньше кода-это факт, а на сколько лучше...надо тестить.
__________________
Тесла по-русски
НСО154 вне форума   Ответить с цитированием
Старый 03.10.2018, 01:09   #250
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

Ни на сколько.
Просто удобнее.
Но если там есть хоть какие глюки, то они будут и у тебя в проекте.
И за все удобства придётся платить скоростью и памятью.

Да и можно вообще без библиотек всяких просто читая параметры регистров таймера атмеги.
В общем этим библиотеки и занимаются...
T_r_D вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 03:26.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot