#1 2022-08-28 21:55:32

Nexter
Учасник
Зареєстрований: 2022-08-28
Повідомлень: 2

CAN bus mcp2515 прием передача без пауз

Доброго дня!
Зробив пристрій CAN bus mcp2515 задачя його по шині САN робити опрос 16 промислових пристроїв по 10 параметрів, взяв
бібліотеку MCP_CAN_lib https://github.com/autowp/arduino-mcp2515 все працює!
Але після функції відправки потрібно команда delay(20) , якщо робиш меньше робить некоректно, або висне!
Якщо порахувати циклічність -  то 16 пристроїв 10 параметрів 20мс то виходить 16*10*0.02=3.2сек. для мене це дуже повильно!
можливо хтось робив щось подібне!



  byte sndStat = CAN0.sendMsgBuf(0x600 + Adress, 0, 4, txCANBuf);
  if (sndStat == CAN_OK)
{

   
    delay(20);   // send data per 20ms
   
    //rxId = 0;
    t = 0;
    while (1) {
      if (CAN_RX == 1)                     
      {
        CAN_RX = 0;
        CAN0.readMsgBuf(&rxId, &len, rxBuf);     
}
  }

Неактивний

#2 2022-08-29 09:00:39

Honey
Учасник
З Київ
Зареєстрований: 2020-09-26
Повідомлень: 220

Re: CAN bus mcp2515 прием передача без пауз

Зробіть не запит-відповідь індивідуально для кожного пристрою, а відправку всіх запитів одразу, а потім по надходженню відповідей обробляйте їх на протязі лімітованого проміжку часу.

Неактивний

#3 2022-08-29 12:28:17

Nexter
Учасник
Зареєстрований: 2022-08-28
Повідомлень: 2

Re: CAN bus mcp2515 прием передача без пауз

Дякую! Буду пробувати, така думка була але, тепер потрібно переробити концепцію! Потім напишу

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму