Буфер экрана, функция SetPixel
- Войдите на сайт для отправки комментариев
Друзья, всем доброго времени! Помогите, ткните пальцем, наведите на мысль. Есть буфер кадра состоящий из одномерного массива, условно скажем 128 байт. Собственно кадр состоит из 128 точек по горизонтали и 8 точек(строк) по вертикали Соответственно буфер разбит следующим образом - первые шестнадцать байт первая строка, следующие шестнадцать байт вторая строка и т.д 8 строк. Подскажите, как сделать расчеты функции чтобы я мог записать отдельный бит(пиксель) указав координаты X Y.
uint8_t bufer[]={
//0 -X- 127
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//-Y- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//7
void SetPixel(uint8_t X, uint8_t Y){
????????????????
}
с выводом буфера проблем нет, если я принудительно устанавливаю биты в массиве они отображаются правильно.
А вы пробовали?
Пробовал, не получается. Собственно для кого то это пустяк или есть уже готовое решение, опубликуйте и поможете не только мне.
bufer[16*Y+X/8]|=1<<(X%8)
bufer[16*Y+X/8]|=0x80>>(X%8)
В зависимости от порядка бит в байте
bufer[16*Y+X/8]|=1<<(X%8)
bufer[16*Y+X/8]|=0x80>>(X%8)
В зависимости от порядка бит в байте
Спасибо! огромное
Все работает как надо, проверил в симуляторе.