Что такое sizeof(), встроенный в Arduino HIGH и LOW?
Может быть, это глупый вопрос, но мне любопытно. Я решил проверить это сам и получил значение 2 как для HIGH, так и для LOW. Почему на выходе должно быть 2?
@Cordell, 👍0
1 ответ
Лучший ответ:
▲ 1
В платах Arduino AVR HIGH и LOW в настоящее время являются макросами:
https://github.com/arduino /ArduinoCore-avr/blob/1.6.23/cores/arduino/Arduino.h#L40-L41
#define HIGH 0x1
#define LOW 0x0
Это означает, что sizeof(HIGH)
эквивалентен sizeof(0x1)
. 0x1
— это целочисленная константа. Тип целочисленных констант по умолчанию — int. На 8-битном микроконтроллере, таком как ATmega2560, используемом в Arduino Mega, целое число составляет 16 бит.
Вот почему sizeof(HIGH)
возвращает 2 (16 бит / 8 бит/байт = 2 байта).
,
@per1234
Смотрите также:
- Как разделить входящую строку?
- Как использовать SPI на Arduino?
- Как сбросить или отформатировать Arduino?
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Arduino Due vs Mega 2560
- Как получить уникальный идентификатор для всех плат Arduino?
- Почему я получаю avrdude: stk500v2_ReceiveMessage(): timeout error when uploading to Arduino Mega?
- Тайм-аут связи Arduino Mega с ошибкой программатора