Тема: CITROEN-ARDUINO
Показать сообщение отдельно
Старый 28.10.2015, 14:15   #96
lti1
Старший Пользователь
 
Аватар для lti1
 
Регистрация: 17.01.2010
Возраст: 48
Город: Самара
Регион: 63, 163
Машина: Skoda Octavia A5 FL && Skoda Octavia Tour && ̶F̶F̶3̶
Сообщений: 457
lti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от T_r_D Посмотреть сообщение
if(!digitalRead(2)) что тут означает восклицательный знак?

Если я правильно понимаю, то проверяется возникновение чего-то на пине 2, и если оно появилось, то читаем данные из буфера.
У меня написано тоже самое, только проверка делается
if(CAN_MSGAVAIL == CAN.checkReceive())

в библиотеке
INT8U MCP_CAN::checkReceive(void)
{
INT8U res;
res = mcp2515_readStatus(); /* RXnIF in Bit 1 and 0 */
if (res & MCP_STAT_RXIF_MASK)
{
return CAN_MSGAVAIL;
}
else
{
return CAN_NOMSG;
}
}

.....................................
INT8U MCP_CAN::mcp2515_readStatus(void)
{
INT8U i;
MCP2515_SELECT();
spi_readwrite(MCP_READ_STATUS);
i = spi_read();
MCP2515_UNSELECT();

return i;
}

Тоесть я проверяю и так наличие единицы.
Что тут рассуждать, попробуйте и будет понятно. У меня пропусков нет, скорость CAN 500 kbps.
lti1 вне форума   Ответить с цитированием