Загрузить исходник lcdicon_snippet.c

byte LCDIcon(const byte *pic, byte x, byte y, byte arrayRows, byte arrayColumns, byte progMem) {
    byte iterCol;
    byte iterRow;
    byte iterByte;
    byte picX = x;
    byte picY = y;    
    byte symbolChar;
    
    for (iterCol = 0; iterCol < arrayColumns; iterCol++) {
        for (iterRow = 0; iterRow < arrayRows; iterRow++) {          
            if (progMem) {
                symbolChar = (byte) pgm_read_byte(&pic[iterCol + iterRow * arrayColumns]);
            } else {
               symbolChar = pic[iterCol + iterRow * arrayColumns];
            }
            for (iterByte = 0; iterByte < 8; iterByte++) {
                if ((symbolChar >> iterByte) & 1) {
                    LcdPixel(picX, picY, PIXEL_ON);
                }
                picY++;
            }
        }
        picY = y;
        picX++;
    }
 
    UpdateLcd = TRUE;
    return OK;
}