1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Avem-Avem

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
cli.c 1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
but0n Отправлено 8 лет назад 5e07e04
#include "cli.h"
#include "tty.h"
// Command Line Interface
// 1110 xxxx : 10xx xxxx : 10xx xxxx - UTF-8
// 0x2800 - braille unicode offset
// 0010 1000 : 0000 0000
const char cli_bitmap[BLOCK_HEIGHT][BLOCK_WIDTH] = {
{0x01, 0x08},
{0x02, 0x10},
{0x04, 0x20},
{0x40, 0x80}
};
unsigned char cli_cache[CACHE_HEIGHT][CACHE_WIDTH] = {};
void cli_fresh() {
UART_CLEAR();
for(unsigned char y = 0; y < CACHE_HEIGHT; y++) {
for(unsigned char x = 0; x < CACHE_WIDTH; x++) {
cli_drawBlock(&cli_cache[y][x]);
}
UART_CR();
}
}
void cli_drawBlock(unsigned char *uni) { //unicode to UTF-8
uart_sendData(0xE2); //First byte must be 0xE2
uart_sendData(0xA0 | ((*uni>>6) & 0b00000011));
uart_sendData(0x80 | (*uni & 0b00111111));
}
void cli_drawSpot(unsigned char x, unsigned char y) {
if((x < WIDTH)&&(y < HEIGHT)) {
// Get offset of block
unsigned char x_offset = x % BLOCK_WIDTH;
unsigned char y_offset = y % BLOCK_HEIGHT;
// Get position of block
cli_cache[GET_HEIGHT(y)][GET_WIDTH(x)] |= cli_bitmap[y_offset][x_offset];
}
}

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/Avem-Avem.git
git@gitlife.ru:oschina-mirror/Avem-Avem.git
oschina-mirror
Avem-Avem
Avem-Avem
master