200*200 !=....
- Войдите на сайт для отправки комментариев
Чт, 17/12/2020 - 13:52
Код используется для подключения ардуино к GPS модули через канлог
#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!"); } void loop() { Serial.println("In loop"); union { uint64_t a; unsigned char b[8]; }t; t.a=40000; CAN.sendMsgBuf(0x18FEC1EE, 1, 8, t.b); delay(100); }
При значениях t.a = 40000, все работает как надо но если записать 200*200 , работает не корректно, в чем проблема, извните уж за такой глупый вопрос)
напиши
t.a = 200 * 200L;
Заработало, спасибо)
При значениях t.a = 40000, все работает как надо но если записать 200*200 , работает не корректно, в чем проблема, извните уж за такой глупый вопрос)
Как думаешь, какой тип у 40000?
А какой у 200?
А каково максимальное значение для того и другого типа?