2926|1

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

奇怪的函数!(能不能帮我看一下) [复制链接]

unsigned char ChangeForm(unsigned char BData)
//这个函数是按位(bit)记的char转换为char 如 BData=0000,1000 转换为 CData=3即0x03   1000,0000转换为7即是0x07
{
        unsigned char CData;          
        CData=0;
        BData=BData/2;
        while(BData)
        {
                BData=BData/2;
                CData++;       
        }
        return(CData);
}

问题是 调试的时候CData总是等于0x0b  BData=0xff 运行时值不会变化 为什么?
当时编译data=53.5是不是data不够用啊?不可能吧 data=53.5大吗

最新回复

我在调试中出现这些问题 registor窗口中在r0-r5均给用上了  只有r6 r7暂时没用上 sp为41 spmax为47 我单步调试的时候 在ChangeForm内部数据是正确的 但函数返回的时候把r6 r7内容覆盖了 我知道是ret从堆栈pop出来了覆盖r6 r7 那么ChangeForm函数是不是没有r调用了啊,那么我该怎么去解决它呢?  详情 回复 发表于 2007-4-14 23:01
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我在调试中出现这些问题 registor窗口中在r0-r5均给用上了  只有r6 r7暂时没用上
sp为41 spmax为47

我单步调试的时候 在ChangeForm内部数据是正确的 但函数返回的时候把r6 r7内容覆盖了 我知道是ret从堆栈pop出来了覆盖r6 r7

那么ChangeForm函数是不是没有r调用了啊,那么我该怎么去解决它呢?
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表