完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
似乎柏树科技的支持已经不复存在了。哦,天哪!
这是我的问题:我的小程序,将一个二进制数字转换为ASCII字符串,并返回字符串的字符数。它包括领先的消零如果需要(cfixeddigitcount = 0)或固定长度的消息带前导零。看起来像这样。 cbinarytoascii uint8(uint16 ISOURCE,uint8 sconversion [],uint8 cfixeddigitcount) {//返回字符串中的字符数 /cFixDeDigigt允许前导零 utiN C点,CI; uTIN 16; C点=0; 当(伊索)!= 0) { IRMAMEDER = ISURCE % 10; 转换[cPosi]=(uTIn8)(iReMeNead)0x30; C点++; iSouCE=10; } 如果(cFixDigDigig计数) {//仅当非零时,否则引导零闪烁 如果(C点& lt;(cFixDigDigig计数)) { 对于(CI=0;CI & lt;(CcIdDigDigigalCcPoT);Ci++) { sconversion [ CPoint ] = '0'; CPoint + +; } } } 返回CPoint; } 到目前为止,它似乎已经奏效了。该计划自我测试了它长大了不少,但我还没有看到的问题。 我只是用它在一个新的模块如下 CJ = cbinarytoascii(iretrievedparameter,casciiresult,0); CJ是一个地方的卡片,casciiresult是uint8阵列5 当我走过cbinarytoascii,或通过它与断点,出现CPoint的号码是正确的,在这种特定的情况下。但在调用模块CJ值0x1a。如果我改变CJ从局部变量的一个全球性的,它的正确性。 不知道我做错了什么,或是在编译错误? 编译器的细节 PSoC Creator(4.2.0.641 4.2) 以上来自于百度翻译 以下为原文 It seems that Cypress Tech Support is no more. Oh dear! Here is my problem: I have small procedure that converts a binary number to an ASCII string, and returns the number of characters in that string. It includes leading zero blanking if desired (cFixedDigitCount=0) or a fixed length message with leading zeros. It looks like this. uint8 cBinaryToAscii (uint16 iSource, uint8 sConversion[], uint8 cFixedDigitCount) {//return the number of characters in the string //cFixedDigitCount to allow for leading zero uint8 cPoint,cI; uint16 iRemainder; cPoint=0; while (iSource!=0) { iRemainder=iSource%10; sConversion[cPoint]=(uint8)(iRemainder) | 0x30; cPoint++; iSource/=10; } if (cFixedDigitCount) {//only if non-zero, else leading zero blnking if (cPoint<(cFixedDigitCount)) { for (cI=0;cI<(cFixedDigitCount-cPoint);cI++) { sConversion[cPoint]='0'; cPoint++; } } } return cPoint; } Up till now it seems to have worked. The program has grown a lot since I tested it out, but I have not seen problems. I have just used it in a new module as follows cJ=cBinaryToAscii(iRetrievedParameter,cASCIIResult,0); cJ is a local uint8, cASCIIResult is a 5 uint8 array When I step through the cBinaryToASCII, or run through it with a breakpoint, the number appearing for cPoint is correct, 4 in this specific case. But in the calling module cJ has a value of 0x1A. If I change cJ from a local variable to a global one, it works correctly. Any idea what I am doing wrong, or is there a bug in the compiler? Compiler details PSoC Creator 4.2 (4.2.0.641) |
|
相关推荐
4个回答
|
|
看来,问题不在回归,但与变量的命名为“CJ”。我用CJ到处为局部变量的一个指标,它不似乎是正确的创建和初始化。
以上来自于百度翻译 以下为原文 It seems that the problem is not in the return, but with the variable named "cJ". I use cJ as an index everywhere as a local variable, and it doesn't appear to be creating/initialising it correctly. |
|
|
|
好啊。所以问题是代码的优化,虽然我的优化级别设置调试。遵循“CJ =…”的路线。 是一个用词作为一个计数器和CJ为起始地址的声明,但我让他们倒。看来,这个错误产生的代码,没有分配正确的价值来CJ。 以上来自于百度翻译 以下为原文 OK. SO the problem is with the optimization of the code, even though my optimization level is set to Debug. The line that followed "cJ=..." was a for statement using cI as a counter and cJ as the starting address, but I got them inverted. Seems that this error produced code that did not assign the correct value to cJ. |
|
|
|
dewars12 发表于 2018-8-20 06:23 尝试将优化级别设置为“无” 鲍勃 以上来自于百度翻译 以下为原文 Try setting optimization level to "none" Bob |
|
|
|
鲍勃 谢谢。我记得读到“调试”是在同一水平作为“无”。我会努力的,虽然现在的问题是治好了,我不知道如何证明。 以上来自于百度翻译 以下为原文 Bob Thanks. I seem to remember reading that "debug" was at the same level as "none". I will try it, although since the problem is now cured, I am not sure how to prove it. |
|
|
|
只有小组成员才能发言,加入小组>>
742个成员聚集在这个小组
加入小组2010 浏览 1 评论
1773 浏览 1 评论
3559 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1705 浏览 6 评论
1473 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
291浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
187浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
363浏览 2评论
303浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
501浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-27 11:44 , Processed in 0.744665 second(s), Total 53, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号