51单片机,函数指针,函数调用异常,求解,大佬救我!!

[复制链接]
14983|8
 楼主| 24kdewhite 发表于 2020-12-2 22:11 | 显示全部楼层 |阅读模式
程序如图,

TFT_color.RGB 初始值是0,他读出来放在了R2,R3,此时还是0,移位正确应该是0吧,但是temp会被赋其他值
图上断点是看起来异常的地方,这个怎么解??



 楼主| 24kdewhite 发表于 2020-12-2 22:20 | 显示全部楼层
结构声明如下


初始化如下
  1. struct_TFT_color TFT_color = {
  2.         0x0000,
  3.         _RGB_increase,
  4.         _RGB_reduce
  5. };




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ayb_ice 发表于 2020-12-3 08:49 | 显示全部楼层
中断函数如果使用了不同的寄存器组,那么中断函数调用的子函数必须小心使用(或者使用同一寄存器组,或者不使用绝对寄存器访问,这些需要改变设置)

评论

在被调用函数后面加using 1的话不能在其他位置调用,还是不要加这个关键字了  发表于 2020-12-3 12:58
状态寄存器也是组1,我怀疑会不会硬件问题。。  发表于 2020-12-3 12:23
异常那里前面几步还在组1里面操作,突然就换组0了  发表于 2020-12-3 12:23
中断加using 1,并且在调用的函数后面也加using 1,异常也会消失。 不论加不加using 1,主函数默认都会使用组0, 但为什么会有异常不清楚  发表于 2020-12-3 12:21
进中断也是这一组,这个函数确实是中断里面调用的,中断函数使用了using 1,调用函数时也是using 1,把这个using 1去掉上面描述的问题可以正常。 去掉using 1后中断使用组0,这个函数也使用组0,但没有看到组1的问题, 就是一个定时中断里面调用的,我也只开一个中断  发表于 2020-12-3 12:09
xyz549040622 发表于 2020-12-3 19:13 | 显示全部楼层
怪不得说使用51的时候使用指针要慎重,楼主的问题深深的说明了这一点。我using x这个从来也没用过。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

279

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部