Всем привет.
Не могу понять работу функции dot из проекта AlexGaver'а microPong
https://github.com/AlexGyver/microPong/blob/master/firmware/microPong/oled.ino
71 строка
Смысл то ясен, а вот неименованные литералы остаются "волшебными цифрами"
Поясните, пожалуйста, кто может.
Спасибо.
Не могу понять работу функции dot из проекта AlexGaver'а microPong
https://github.com/AlexGyver/microPong/blob/master/firmware/microPong/oled.ino
71 строка
C++:
void dot(byte x, byte y, boolean state) {
byte Pa;
if (y < 4) byteY = y;
else if (y < 8) byteY = y - 4;
else if (y < 12) byteY = y - 8;
else byteY = y - 12;
byte index = x + y / 4 * 64;
byte thisByte = oled_buf[index];
bitWrite(thisByte, byteY * 2, state);
bitWrite(thisByte, byteY * 2 + 1, state);
oled_buf[index] = thisByte;
Wire.beginTransmission(OLED_ADDRESS);
Wire.write(OLED_COMMAND_MODE);
Wire.write(0x21); Wire.write(x * 2); Wire.write(127);
Wire.write(0x22); Wire.write(y / 4); Wire.write(3);
Wire.endTransmission();
Wire.beginTransmission(OLED_ADDRESS);
Wire.write(OLED_DATA_MODE);
Wire.write(thisByte); Wire.write(thisByte);
Wire.endTransmission();
Wire.beginTransmission(OLED_ADDRESS);
}
Поясните, пожалуйста, кто может.
Спасибо.
Вложения
-
55.2 KB Просмотры: 13
Изменено: