На вход будут поступать числа, значение датчика расстояния, мне нужно перевести их к виду 0x01, 0x20, 0xA0, 0x00 первые биты младшие
например число 400 должно быть в виде 0x90, 0x01
Что бы подставить в выражение: unsigned char stmp[8] = {0x90, 0x01};
#include <SPI.h>
#include "mcp_can.h"
const int SPI_CS_PIN = 10;
MCP_CAN CAN(SPI_CS_PIN);
void setup()
{
Serial.begin(115200);
while (CAN_OK != CAN.begin(CAN_250KBPS, MCP_8MHz))
{
Serial.println("CAN BUS Shield init fail");
Serial.println(" INit CAN BUS Shield again");
delay(100);
}
Serial.println("CAN BUS Shield Init OK!");
}
// Пробег
unsigned char stmp[8] = {0x90, 0x01};
void loop()
{
Serial.println("In loop");
CAN.sendMsgBuf(0x18FEC1EE, 1, 8, stmp);
delay(100);
}
void loop() {
– Agros Dec 15 '20 at 11:49Serial.println("In loop"); CAN.sendMsgBuf(0x18FEC1EE, 1, 8, stmp); delay(100); }
unsigned int stmp[2] = {400, 0};и отправку какCAN.sendMsgBuf(0x18FEC1EE, 1, 8, (unsigned char *)stmp);– insolor Dec 15 '20 at 11:57unsigned int number = 400надо получитьunsigned char stmp[8] = {0x90, 0x01, 0, 0, 0, 0, 0, 0};? – Павел Ериков stand with Russia Dec 15 '20 at 12:31у = у / 16;или сдвиг на 4, нижняя частьy = x & 15;Далее 0-15 преобразуем в ASCII:y = ((x > 9) ?(65 - 10) : 48) + x;усё. – nick_n_a Dec 15 '20 at 14:23