发新帖我要提问
12
返回列表
打印

在动态扫描基础上实现多级亮度控制

[复制链接]
楼主: le062
手机看帖
扫描二维码
随时随地手机跟帖
21
le062|  楼主 | 2014-8-5 17:30 | 只看该作者 回帖奖励 |倒序浏览
huangqi412 发表于 2014-8-5 17:06
电脑用的是2进制,不要用人的十进制来想。这样就是3840了,是次/秒,不是HZ。

非矩形显示点阵,也可以将 ...

在应用层是按照60Hz的频率刷新buf
但是驱动层如何把buf中的数值还原成亮度这个模拟量呢

我所讲的就是一种在特定需求下的驱动方法

使用特权

评论回复
22
huangqi412| | 2014-8-6 09:39 | 只看该作者
le062 发表于 2014-8-5 17:30
在应用层是按照60Hz的频率刷新buf
但是驱动层如何把buf中的数值还原成亮度这个模拟量呢

显存+时序 完全是简单的固定机械动作,每次操作时间基本恒定。 没有任何东西要运算或者什么,只需要几个计数器次数循环,以及移位。  更适合FPGA执行。    你这是不是每次定时执行时间相差悬殊啊。
上层再怎么忙也不能超过刷新率,超过了没意义。

使用特权

评论回复
23
le062|  楼主 | 2014-8-6 10:07 | 只看该作者
huangqi412 发表于 2014-8-6 09:39
显存+时序 完全是简单的固定机械动作,每次操作时间基本恒定。 没有任何东西要运算或者什么,只需要几个 ...

呵呵,你去算算把,
只有普通的十几兆主频的MCU加一些普通IO口
没有fpga给单片机做显卡

使用特权

评论回复
24
huangqi412| | 2014-8-6 11:27 | 只看该作者
le062 发表于 2014-8-6 10:07
呵呵,你去算算把,
只有普通的十几兆主频的MCU加一些普通IO口
没有fpga给单片机做显卡 ...


10多m的单片机全彩显示,  按前面算的,3840次,每次要换一根选中线,移位一次即可,每8次移位需要重新开始移位。  每次送3个8位显示数据,从24个显存中取位合并而来(可以修改显存排列,这里直接送3个字节,更新显存时候才位操作,节约大量时间,这里就成了只要送3个RAM到3个8位端口,而更新显存最多每秒折腾60次乱七八糟位操作,实际不可能拼命改显存),再搞2个变量循环计数显存什么的,简单累加到头归零。  一次操作加起来几十条可能就够了。不涉及任何计算啊什么的  改变参数复杂度变化很小,加减显示点阵,增减成单色或RGBXXX,加减颜色深度,执行时间都变化很小。RAM也=显存+几个BYTE循环计数   
你那特殊驱动方法自己对比下,用多少内存和时间,还一个点闪,要求所有点任意显示呢,改变要求呢。

使用特权

评论回复
25
le062|  楼主 | 2014-8-6 13:22 | 只看该作者
huangqi412 发表于 2014-8-6 11:27
10多m的单片机全彩显示,  按前面算的,3840次,每次要换一根选中线,移位一次即可,每8次移位需要重新开 ...

你有空看我全文把,理解不一样

使用特权

评论回复
评论
huangqi412 2014-8-6 14:15 回复TA
没必要看,点阵扫描哪来的单个点亮度控制。。。 
26
le062|  楼主 | 2014-8-6 14:24 | 只看该作者
huangqi412 发表于 2014-8-6 11:27
10多m的单片机全彩显示,  按前面算的,3840次,每次要换一根选中线,移位一次即可,每8次移位需要重新开 ...

我所谓的“对单颗LED进行亮度调节”当然是对所有LED中任一一颗或多颗同时进行亮度调节。

我在7楼也写出了驱动接口
LED_changeLightness(u8 ledid, u8 targetLightness, bool is_immd )

通过这个接口可以使矩阵中任意一颗LED的亮度调整到targetLightness,通过is_immd确定亮度是瞬变还是缓变(缓变速度是事先约定好的)

所以说理解不一样,就不必多聊了

使用特权

评论回复
27
tyj_3| | 2014-8-7 21:51 | 只看该作者
纯属占位

使用特权

评论回复
28
谢谢分享,学习下

使用特权

评论回复
29
f502819619| | 2014-8-11 17:28 | 只看该作者

使用特权

评论回复
30
vavsz003| | 2014-8-12 11:42 | 只看该作者
  楼主十分专业,高手在民间啊。  极好贴,感谢分享,最喜欢这样的帖子,既获得了经验,又获得了知识  。交流是学习的第一步。

使用特权

评论回复
31
huangqi412| | 2014-8-22 15:50 | 只看该作者
发现有消息未读,打开发现原来是这个帖子,进来再看了一下,似乎是大致看明白了楼主意思

1楼 描述了如果LED是M行N列,刷新率L,亮度分成K个等级,则一秒钟进行N*L次列扫描,每个扫描间隔再将定时器分裂成K次,修改行数据,让行在每次列扫描时间内按K等分算导通时间,
中规中矩的基本扫描知识很容易理解

2楼 给出具体实例 90个灯为了减少扫描次数做成3*30,刷新率60,亮度级别30。计算出要用33个IO,中断频率60*3*30=5.4K,用增加IO降低扫描频率,33个。。。
再给出LED描述结构,前后链接号,自身ID,目标亮度值,当前亮度值,4+4+1+1+1=11字节,90个灯要用牛X的90*11字节。
再就是基本中断伪代码 外循环是3列扫描,内循环是30次亮度判断。0点亮灯,亮度几就到几关灯,似乎是每次亮度判断都要将30个灯遍历一次(前后链接号何用?按亮度排序似乎不成,变亮度要重新排序)
最后留下真正要说的变亮度的悬念下回分解。

3楼 似乎是先占楼再码字,但是铺垫完了不见猪脚登台,楼是占了,说好的亮度变化呢

5楼 版主出现加精

7楼 一加精忘了3楼的坑 已经得出结论,实现了亮度变化,给出功能,接口,资源占用,结论是这东东很好很强大

一片标准的毕业论文范例出来了,给出标题,描述基本情况,要实现的目标,做个开头,笔锋一转贴出效果图,结论这东东已经先进水平。编辑推荐不知道怎么推荐的,先把3楼补上再说啊,呵呵。。。

16楼 这个控制方法的目标是让所有led实现非同步的呼吸灯效果,各种图标,数码管,按键灯等都能根据需要自由的进行闪烁,亮灭,缓变。
是否就是任意LED可以同时各自速率,周期变化亮度?例如
LED2 在 1秒到 8秒从亮度3 变化到亮度21
LED88在 2秒到 7秒从亮度27变化到亮度11
LED53在 4秒到11秒从亮度22变化到亮度9
LED31在 3秒      从亮度25跳变到亮度15

A点坐标D1 B点坐标D2,间距S=D2-D1 要求T时间到达 则V=S/T, 要求V速度到达 则T=S/V  如果一大堆AB点也就一大堆S,各自独立就会有一大堆VT,如果统一速度或者统一时间就变的很简单了。
目标亮度和当前亮度差也就是算距离,如果就你上面2楼东西不再添加,我太笨似乎想不出如何做到所有LED各自按速率和周期改变亮度,
从这个LED_changeLightness(u8 ledid, u8 targetLightness, bool is_immd )看,似乎是编号,目标亮度,是否瞬变
变化速度恒定(比如,0.5秒从全黑到最亮) 应该就是V固定,不管V还是T固定都一回事,每一轮列扫描按照速度向目标亮度方向步进当前亮度

7楼,变化速度可调的实现方法还没想过。
各自任意变化,按S=VT显然只能再加一个数组,每个灯配置一个自己独立的V.


14楼 要不要这样玩,是需求决定的和资源、技术没太大关系
21楼 我所讲的就是一种在特定需求下的驱动方法

反复强调特定需求实在没看出什么特殊需求引出这么个费时费力折腾**。

如果我的理解是对的,对楼主辛苦码了这么多楼只能呵呵。。。没一点可取之处。  


@le062  @dirtwillfly  

使用特权

评论回复
32
dirtwillfly| | 2014-8-22 17:06 | 只看该作者
huangqi412 发表于 2014-8-22 15:50
发现有消息未读,打开发现原来是这个帖子,进来再看了一下,似乎是大致看明白了楼主意思

1楼 描述了如果LE ...

想起了一句话,忘了是怎么说的了。
具体到产品设计,做到最后,要用集合的观点来看问题

使用特权

评论回复
33
le062|  楼主 | 2014-8-22 18:06 | 只看该作者
确实整个帖子没有一行源码示例,关于链表操作的核心部分也说的过于简略
正好我打算做个小玩意,到时候把它放上来充实一下。

使用特权

评论回复
34
dawei360| | 2014-8-23 11:50 | 只看该作者
哈哈,看看我们公司的TM1623 就知道怎么实现的了!

使用特权

评论回复
35
le062|  楼主 | 2014-8-23 15:17 | 只看该作者
dawei360 发表于 2014-8-23 11:50
哈哈,看看我们公司的TM1623 就知道怎么实现的了!

我看了一下,你们的产品亮度是整体调整,不能针对单个led配置亮度,
这点不一样

使用特权

评论回复
36
dawei360| | 2014-8-24 11:26 | 只看该作者
le062 发表于 2014-8-23 15:17
我看了一下,你们的产品亮度是整体调整,不能针对单个led配置亮度,
这点不一样 ...

是的,动态扫描就是每一个时刻导通一位数码管,数据来控制LED灯的亮灭,导通时间决定了亮度;单个的LED灯的控制就没有了!

使用特权

评论回复
37
whm597| | 2014-8-24 13:27 | 只看该作者
好贴,我~顶~...

使用特权

评论回复
38
yixiao22| | 2014-8-25 12:32 | 只看该作者
不错,谢谢分享。

使用特权

评论回复
39
vavsz003| | 2014-8-30 15:55 | 只看该作者
    楼主分享的很精彩,很用心的作业。  学习了。  必须加精, 顶贴,不能沉了。  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则