找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2031|回复: 4
收起左侧

keil5调试单片机程序问题,有没有大牛帮忙看看这是为什么

[复制链接]
ID:277834 发表于 2018-1-19 19:12 | 显示全部楼层 |阅读模式
这是用keil5调试时候的截图,time[6]=0x17,右移4位,加上0x30,应该等于0x31,但是结果却是0x50,有的时候还会等于0x70.
想不明白为什么,char类型的数据右移4位高位不应该是0么!是keil5右移符号的问题么?
{75J~ESV[3ULBV_WFH0$QSF.png ZP1ZYPBUTQ9]BC26KD@TOZB.png BQT81EVAHI`H@JD2)NU8Q[L.png
回复

使用道具 举报

ID:258566 发表于 2018-1-19 20:16 | 显示全部楼层
可能是软件的问题,也可能是数据在其他地方被修改,如多线程程序中。
回复

使用道具 举报

ID:277834 发表于 2018-1-19 20:41 | 显示全部楼层
1516365392(1).jpg
刚才用汇编调试的时候,发现正确的值在r6寄存器里边,但是却是用A寄存器里的值加的'0',有懂汇编的老师知道这是为什么吗?为什么要把r6和A里的值交换
回复

使用道具 举报

ID:277834 发表于 2018-1-19 21:00 | 显示全部楼层
cccc888 发表于 2018-1-19 20:16
可能是软件的问题,也可能是数据在其他地方被修改,如多线程程序中。

是keil软件的问题吗?别的不可能改啊,我这个程序只是ds1302显示在lcd上的
回复

使用道具 举报

ID:78322 发表于 2018-1-20 09:22 | 显示全部楼层
有些参数在中断里面和在主程序里面都会调用的话,最好在定义这个参数的时候加一个修饰符volatile。
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表