1
82
259
中级技术员
使用特权
13
1185
3880
中级工程师
16
286
872
高级技术员
dirtwillfly 发表于 2017-5-2 10:42 尽量用移位操作代替除法和取模。或者num不要用数字,直接用字符串来储存数字,显示的时候就方便了 ...
linqing171 发表于 2017-5-2 12:48 首先是这个运算不会有1ms,肯定不会有。你的代码其它地方有耗时的。 其次是你可以一次运算好,存起来,后面 ...
gx_huang 发表于 2017-5-2 12:55 应该用中间变量 uchar temp; temp=num/100;
@若水 发表于 2017-5-2 13:14 STM8处理这点代码不可能用30ms的,肯定是其它代码占时间
菜鸟同学 发表于 2017-5-2 14:30 30ms 这个你怎么测试出来的。
ningling_21 发表于 2017-5-2 15:50 30ms 怎么测出来的
jackhwang 发表于 2017-5-2 16:43 num=(u16)ucdata; Thousand=num/1000; Hundred=num%1000/100;
icecut 发表于 2017-5-2 17:45 没有除法可以用减法...还可以用比较,二分法,比如大于5000否,大于就减去,然后大于3000否,大于就减去,大于200 ...
宇容创行 发表于 2017-5-2 17:47 这是设计问题,和算法无关,算的再慢都不应该影响到显示
ayb_ice 发表于 2017-5-2 18:56 stm8有除法指令,并且支持16位的,就算没有也不可能要30ms,除非你的时钟很慢,查找其它地方问题 ...
JerryWu75 发表于 2017-5-2 19:39 LED刷新放到定时器中断中, 计算过程放到主循环中. 再作一个互斥锁.
50
9037
2万
技术总监
whirt_noob 发表于 2017-5-3 14:04 按照提示做了优化,另外问一下,像DS18B20这一类采集温度时间比较久的元器件,要怎么样处理程序中需要延 ...
zyj9490 发表于 2017-5-2 21:06 这段代码完全可以优化,NUM%1000,可以作为中间变量进行保存,
tomzbj 发表于 2017-5-3 08:52 别折腾595了, 一片TM1650解决问题.
gx_huang 发表于 2017-5-3 14:33 这个需要程序架构的调整。 正常情况下,显示程序可以在定时器中断里运行显示,比如8个数码管,定时器中断 ...
dragon_hn 发表于 2017-5-3 09:40 不可能需要30ms.自己找找真实的原因吧
299
905
35
707
2192
初级工程师
发表回复 本版积分规则 回帖后跳转到最后一页
等级类勋章
发帖类勋章
时间类勋章
人才类勋章
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号