Microchip
直播中

胡丹丹

7年用户 135经验值
私信 关注
[问答]

使用PIC18f4520上内部EEPROM读取的浮点值时遇到问题

大家好,我面临着一个奇怪的问题,不能使用从控制器内部EEPROM中检索到的浮点值。我在这里要做的就是在EEPROM中存储一个浮点值,在控制器重置时或者在一个电源周期之后取回这个值。我所面临的问题是,当我从EEPROM中读取值之后,我把它显示在一个看起来很好的串行终端上。但是如果我试着在while循环中使用这个变量,它不会像预期的那样增加。这是我的测试代码,我知道EEPROM有持久极限,我不应该频繁地修改它。但这只是为了测试代码流。读取值被正确显示,但是不能根据需要增加变量“rt”。这里的脉冲是由ISR增加的,这个代码中没有显示。有人能帮助我解决这个问题吗?我在PIC18F420,MPLABX V4.10,XC8 V1.34在Windows 7上工作。谢谢

回帖(7)

吴键洪

2020-3-31 07:38:07
你已经排除了一些重要的细节。在这个测试中,“RT”和“脉冲”的值是多少?(我不必问你是否显示了你的串行输出。)在XC8中你设置了什么尺寸的“浮动”?24还是32?
举报

徐远瑶

2020-3-31 07:44:45
嗨,QYB,1。“RT”和“脉冲”是当传感器在IOC(RB7)PIN上发出脉冲时产生的动态值。“RT”是浮动类型,“脉冲”是无符号int类型。2。浮点数是XC8上的3字节(24位)。这是内部使用“rt”时的串行终端输出,而(1)loop这是内部使用不同的浮点数变量时的串行终端输出。
举报

蒋喜玲

2020-3-31 07:59:11
显示的“脉冲”最高值是72。我知道(float)的优先级应该高于“/”,但是尝试使用440.0而不是440,并强制使用浮动除法而不是可能的整数除法。
举报

潘斯凯

2020-3-31 08:07:15
谢谢。会拿走那个小费。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分