sparkjl / TinyMatrix

TinyMatrix is a Led Matrix controller based on Hub75 interface.
MIT License
25 stars 6 forks source link

请问在哪里配置扫描数?我没有看到扫描数。代码支持的灯板是默认64扫描的吗? #7

Open Loufey opened 1 year ago

Loufey commented 1 year ago

hi,你的代码逻辑写的很棒! 我有几个问题想请教一下: ●请问在哪里配置灯板的扫描数?我没有看到扫描数。代码支持的灯板是默认64扫描的吗?如果我想配置成8扫的,应该在哪里修改参数配置。另外关于LED驱动芯片的数量配置,是在这里吗 unsigned char num = HUB75_PANEL_WIDTH/16; // chip number ,我想请问一下你用的灯板是有多少个LED驱动芯片。 ●在hub75_buff[HUB75_PANEL_WIDTH/8 HUB75_PANEL_HEIGHT]这条语句中, HUB75_PANEL_WIDTH/8 HUB75_PANEL_HEIGHT 是什么含义 是每帧像素点的数量吗? ●如果我的灯板是48X32分辨率,长48高32,8扫。应该如何配置参数

以上,谢谢!

sparkjl commented 1 year ago

@Loufey 本项目是64x64/32扫的led matrix。8扫的led matrix只有A、B、C 3根地址线,需要将HUB75_PANEL_HEIGHT设置为16(上下1/2屏各8行)。注意此处是显存buffer height,可能并不是matrix height。如果HUB75_PANEL_HEIGHT = matrix height / n,则HUB75_PANEL_WIDTH = matrix width * n。因为led matrix生产商可能会将原本1行的led layout到n行。如果led driver为SM1612,则只需要将HUB75_PANEL_HEIGHT设置为16;而如果led driver为ICN2053/ICN2153,则先需要配置相关寄存器,行扫描函数也需要修改。

chip number是扫描1行led所需要的led driver数量。你问到这里,说明你的led driver为ICN2053/ICN2153,这是一种16bit移位输出芯片。因为上下1/2屏R/G/B数据线是独立的,所以total chip number = HUB75_PANEL_WIDTH / 16 * 2。

hub75_buff可以理解为显存,这里主要用于字符显示。led matrix通常是横向扫描,考虑到字库格式及SM1612这类led driver都是8bit移位输出芯片,所以hub75_buff大小为HUB75_PANEL_WIDTH/8 * HUB75_PANEL_HEIGHT