打印

字节高低位倒置的算法

[复制链接]
6082|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
常来21ic|  楼主 | 2008-10-31 09:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为128x32的点阵lcd要倒过来看,所以遇到了字节高低位倒置的问题。
目前只我知道最直接的方法,用移位的方法把每一个bit都跟1相与,这样就要有128x32个比特跟1相与,而且还要做将近 128x32 次移位。
我觉得这算法好笨,大家有没有好的算法呀,用c,好几年不用汇编了:-)

相关帖子

沙发
s46410864| | 2008-10-31 10:38 | 只看该作者

把线反着接呗

使用特权

评论回复
板凳
Tony.J| | 2008-10-31 10:47 | 只看该作者

关注中。。。。。。

使用特权

评论回复
地板
aceice| | 2008-10-31 10:48 | 只看该作者

楼上的办法好

基本上就是屏蔽位,然后移位相加的办法
查查C51里是不是交换的宏

使用特权

评论回复
5
computer00| | 2008-10-31 10:59 | 只看该作者

半查表法

使用特权

评论回复
6
lyjian| | 2008-10-31 11:05 | 只看该作者

查表的方法处理倒是挺快的

使用特权

评论回复
7
Tony.J| | 2008-10-31 11:17 | 只看该作者

RE

二楼说的方法简单,既然要把数据倒置,不如把总线倒置。不过,要是没有排线连接的话,用查表法也可以,只是会增加代码量

使用特权

评论回复
8
电子尘埃| | 2008-10-31 11:24 | 只看该作者

楼主查一下历史贴,这我以前问过

我是128*64

使用特权

评论回复
9
john_light| | 2008-10-31 11:40 | 只看该作者

如果经常来21ic应该碰到过这样的问题及答案了

原来那张帖里,“平常人”的思路让人豁然开朗……

使用特权

评论回复
10
常来21ic|  楼主 | 2008-10-31 12:41 | 只看该作者

:-)

看来这里应该有讨论过了,网上随便一搜索也是大把的论坛讨论过的。
正如00所说,半字节查表应该是比较合算的

使用特权

评论回复
11
aceice| | 2008-10-31 12:52 | 只看该作者

半字节查表法效率也不见得高

如果表格存储在CODE区,对于51系列的,执行效率和移位屏蔽差不多吧?

使用特权

评论回复
12
lyjian| | 2008-10-31 14:06 | 只看该作者

楼上说得不错

dengm 发表于 2008-2-21 13:34 侃单片机 ←返回版面    

51楼: Bits SWAP 13 CYS 51 ASM 

         SWAP A       ; C 32107654
         MOV C, ACC.6 ; 2 32107654
         RRC C        ; 4 23210765
         MOV ACC.5,C  ; 4 23410765
         MOV C, ACC.4 ; 1 23410765
         RRC A        ; 5 12341076
         MOV ACC.3,C  ; 5 12345076
         MOV C, ACC.2 ; 0 12345076
         RRC A        ; 6 01234507
         MOV ACC.1,C  ; 6 01234567
************************************************
用51实现的话,上面的程序13个指令周期,16字节代码
用半字节查表法实现的话大概是16个指令周期,19字节代码

使用特权

评论回复
13
john_light| | 2008-10-31 15:29 | 只看该作者

ARM核怎么办?

使用特权

评论回复
14
谈的元| | 2008-10-31 21:09 | 只看该作者

我汇编改过

原来正显示,后来要将屏转180度看,编写了一个宏,一下子搞定。
C就不清楚了

使用特权

评论回复
15
ayb_ice| | 2008-10-31 21:57 | 只看该作者

记得以前有个用IO法最快

使用特权

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

本版积分规则

40

主题

1178

帖子

0

粉丝