位置:UltiLCD2_low_lib.cpp
函数原型:
void lcd_lib_draw_hline(uint8_t x0, uint8_t x1, uint8_ty)
{
uint8_t* dst =lcd_buffer + x0 + (y / 8) * LCD_GFX_WIDTH;
uint8_t mask = 0x01<< (y % 8);
while(x0<= x1)
{
*dst++ |= mask;
x0 ++;
}
}
函数说明:
在48行的第3个位置开始显示一行的点,显示到124个位置结束。
详解:
x0: 3 第3列开始显示
x1: 124 第124列结束显示
y : 48 第48行开始显示
uint8_t* dst = lcd_buffer + x0 + (y / 8) *LCD_GFX_WIDTH;
dst指向lcd_buffer数组的位置,指向的下标是0+3+(48/8)*128=771,即lcd_buffer[771],48行第3个位置。
为什么是 (y / 8)?
是因为该OLED是列行式,所以 lcd_buffer 可以看成是128列*8行的二维数组。
uint8_t mask = 0x01 << (y %8);
mask 是显示的数据,这里都是1。OLED是阴码,高电平点亮。
while(x0 <= x1)
x0 ++;
显示的范围3---124
*dst++ |= mask;
把显示的数据填入lcd_buffer数组
|
|
你可能喜欢
人工智能与3D打印技术结合,实现小型核反应
最新《Nature》:动态界面3D打印
石墨烯增强混凝土能否推动可持续建筑? UVA
杜克大学:新型无溶剂3D打印材料,可用于医
推荐课程
神奇的3D打印
SLA3D打印工艺全套培训课程 - 软件篇
3D打印月球灯视频教程 包括完整贴图建模流
【原创发布】Cura软件修改二次开发定制视频