完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我一直在研究如何做到这一点有一段时间,我仍然不确定这是否是一个好方法,或者甚至是最好的方法来计算a转换为10位PWM值,因为所选择的微处理器没有浮点单元。我从易趣网公司得到的IST泵。它们是12伏特,所以我用FET来驱动他们。根据速度的不同,它们的额定功率在0.01到100ML之间,因此我正在驱动它们通过脉宽调制(这就是我选择16F1509,用于4个PWM端口的全部原因)。我正在研究的是获取罐的大小、剂量大小、剂量罐的大小和频率,并将其转换为脉宽调制。确保恒定的特定剂量(例如,一个20加仑的罐子,剂量基于一个60加仑的罐子,剂量大小为5毫升,每周一次)。到目前为止,我已咀嚼了大量的ROM空间,但我不能100%确定这是最好的方法(或者,如果是长期稳定的话,功能是c)。从控制水泵的例行程序中恢复过来。现在,从计时子例程中每小时调用一次这个函数。这是我迄今为止为这个函数提供的代码:任何帮助或提示都将不胜感激。
|
|
相关推荐
15个回答
|
|
|
您仍然可以进行浮点计算,它们只需要比具有FPU的设备稍微长一点。您对计算需要多长时间有一些严格的要求吗?
|
|
|
|
|
|
只要有可能,我就用查找表来代替复杂的计算。你只要看看你的应用程序会被用来查看这个攻击是否可能的真实世界就行了。只要我的2美分……最好的问候Jorge
|
|
|
|
|
|
你做所有的整数数学。如果将20除以4=5(整数可以),也可以。但是,如果将9除以5,则会得到1,这与期望的1.8不太接近。有很多方法可以保持其为整数,而且您可以使它非常快,但是只有当您没有足够的时间进行计算时才需要它。如果你有时间/内存,你可以用浮点来做,那么就没有必要优化任何东西。
|
|
|
|
|
|
我不太关心时间问题,而更关心确保准确性,因为对于我的应用程序,过量或过量都会导致长期的问题。整数计算首先放在一起,因为它们占用了太多的ROM作为浮点,剩下的是我的程序。现在,我已经调好了使用更少的ROM空间来做其他事情,我又回到了确保剂量计算准确的位置。我会使用一个查找表,但我仍然在努力思考它是如何工作的,以及如何使用它,因为它对我来说是一个新概念,并且我想使用一个用于从矩阵键盘读取,用于pH探针。关于查找表,我仍然在研究和阅读它们是如何工作的,以便为这个问题形成一个功能解决方案。这个应用程序目前使用4个PWM控制电机,每个泵将获得不同的值,我想使用相同的功能来处理这些va。LUE,并将其转换为PWM占空比值,基于读取外部EEPROM的静态变量。
|
|
|
|
|
|
您提供了代码。不是公式。以01ML=10微尺度为单位,不需要小数。分水岭前要经常冲浪。(除非它不影响结果)。确保多个不会溢出选定的变量大小。这可以在Excel中验证。不使用XC8浮标可以是24或32位。其结果可能比整数数学差。假设单位适合,不慢。然后它们可以被使用。
|
|
|
|
|
|
BTW,1加仑为3.7854升,3785.41毫升。
|
|
|
|
|
|
那是我们加仑。帝国加仑更大。
|
|
|
|
|
|
这就是为什么有一个公制。
|
|
|
|
|
|
那是我们加仑。帝国加仑更大,实际上这就是我们的液体加仑。格林先生说,美国有一个干涸的加仑。
|
|
|
|
|
|
那是我们加仑。帝国加仑更大,一加仑4.54609升。
|
|
|
|
|
|
你能把十加仑装进“十加仑帽子”里是什么?;)
|
|
|
|
|
|
步骤:1。买一顶10加仑的帽子。2。把它填好。3。把它倒进一个校准的圆柱体中。4。除以10。
|
|
|
|
|
|
美国液体加仑的实际定义精确地是231立方英寸。一英寸精确地定义为25.4毫米。所以美国液体加仑实际上是一个公制单位。排序
|
|
|
|
|
|
查看开头文章中的代码片段,我注意到所有变量都是整数类型,对参数进行签名,对本地语言进行无符号,也没注意到表达式中任何类型的强制转换。到目前为止,它的所有整数数学都在每个分区丢弃提醒。他的使用水平还好吗?此外,我注意到泵送动作有2个主要参数,泵送流量(PWM)和泵作用的次数每间隔时间。这意味着2度的自由度会更频繁地抽吸或抽得更少。为了在单个参数中以较小的精度获得流体量的期望精度,可以对此进行探索。表达式和评论中的所有数字都是小数。山姆适用于参数吗?在整数运算中保持有限小数精度的一种古老技术称为“固定小数点格式”。在螺母壳中,如果你想要2位数的小数精度,在做数学运算之前,把所有的数字乘以100然后把小数点放入结果中。查找表只是一个预先计算的结果数组,由它的条目值来索引。每个人至少使用一次。你还记得小学的单位数乘法表吗?是的,那些10x10表,行和列从1到10乘以截取平方。在嵌入式编程中,最常用的LUT是用DAC产生波形。例如正弦波。对于一个小的8位PIC来说,三角计算是相当繁重的,但是一个象限(0~90)的振幅表就足以产生一个完整的正弦波。因此,请列出你的确切需求、涉及的不同值的范围以及可能的传递函数。o做数学,并生成一个或多个表,为您的需要提供必要的粒度。
|
|
|
|
|
|
在微控制器项目中,我几乎总是使用缩放整数,并且同意JorgeF的一个小区别。除了人类,十进制小数没有什么特别的。除非您需要输入/输出,否则二进制分式也同样好(通常更好)。想想看,与将数字的整数部分缩放为100(您需要相当于除以25)相比,将数字的整数部分缩放为(比如说)64(只是移位)是多么容易。例如,所有的TIG函数都是基于圆的二元分数。对于一个16位整数,0度=0x000,90度=0x4000,180度=0x8000,270度=0xC000。除了完全使用可用的值(导致更大的分辨率)之外,还有一个自然的“回绕(wrap-.)”,因此如果忽略溢出,从(0-delta)度移动到0°是自然的。令人惊奇的是,在二进制分数的世界里,距离缩小是多么的简单——没有杂乱的π要处理。浮点数很大,如果你的范围未知,但是大多数物理问题范围是可以理解的。此外,考虑浮点数与范围的准确性。如果你从Lat/Long的角度考虑你的位置,浮点数在英格兰格林威治附近给出令人难以置信的分辨率,但是在截止日期(+/-180度)上给出更差的分辨率。[我模糊地记得,对于IEEE单精度来说,差异是大约256的因素。]这通常不是优势。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475 浏览 0 评论
5795 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1125浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1098浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 22:37 , Processed in 1.500493 second(s), Total 100, Slave 83 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1434