硬汉嵌入式论坛

 找回密码
 立即注册
查看: 725|回复: 4
收起左侧

[Lua] 做了个LUA的32bit数据bit值为1的解析,效果不太高

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
发表于 2023-4-25 15:39:13 | 显示全部楼层 |阅读模式

CANFD的Rx Buffer有两个32bit NDAT寄存器,如果bit值为1就表示相应的偏移位置接收到CANFD帧数据了,总共可以接受64个CANFD帧数据。

[Lua] 纯文本查看 复制代码
for i=0,31, 1 do
        off = (FDCAN1_RxBufferNDAT1 & (1<<i) ) >> i 
    if(off == 1) then
                RxCount = RxCount + 1
            RxBuffer[RxCount] = i
        end
end

for i=0,31, 1 do
        off = (FDCAN1_RxBufferNDAT2 & (1<<i) ) >> i 
    if(off == 1) then
                RxCount = RxCount + 1
            RxBuffer[RxCount] = i + 31
        end
end



回复

使用道具 举报

19

主题

234

回帖

291

积分

高级会员

积分
291
发表于 2023-4-25 15:57:00 | 显示全部楼层
LUA可以直接移位吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2023-4-25 16:02:44 | 显示全部楼层
tovinz 发表于 2023-4-25 15:57
LUA可以直接移位吗

可以移位,跟C一样。
回复

使用道具 举报

19

主题

234

回帖

291

积分

高级会员

积分
291
发表于 2023-4-25 16:12:18
eric2013 发表于 2023-4-25 16:02
可以移位,跟C一样。

是的,5.3版本已经引入了,我用的版本太老了

这个可以哎 常见面试算法题:统计一个Byte中的“1”的个数_判断一个字节有多少个1_lizhi_ma的博客-CSDN博客

19

主题

234

回帖

291

积分

高级会员

积分
291
发表于 2023-4-25 16:12:24 | 显示全部楼层
eric2013 发表于 2023-4-25 16:02
可以移位,跟C一样。

是的,5.3版本已经引入了,我用的版本太老了

这个可以哎 常见面试算法题:统计一个Byte中的“1”的个数_判断一个字节有多少个1_lizhi_ma的博客-CSDN博客
下载 (2).png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106757
QQ
 楼主| 发表于 2023-4-25 16:35:56 | 显示全部楼层
tovinz 发表于 2023-4-25 16:12
是的,5.3版本已经引入了,我用的版本太老了

这个可以哎 常见面试算法题:统计一个Byte中的“1 ...

这个有个算法的,我试试效率高不

计算32bit数据中1个数的算法hamming weight
https://www.armbbs.cn/forum.php? ... 5555&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 21:28 , Processed in 0.275948 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表