找回密码
 立即注册
查看: 372|回复: 6

PWM的各个寄存器的值,写入后可以读吗

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2024-09-29 08:20:57

6

主题

25

回帖

114

积分

注册会员

积分
114
发表于 2024-7-13 11:08:17 | 显示全部楼层 |阅读模式
STC8G2K64S4的PWM的几个寄存器,如果我先写入一个值,然后再马上读出来,通过比较写入的原值和读出的值是否同等,来判断对该寄存器的设置是否生效。这个方法可行吗?


unsigned char old_value = 0xF1;

unsigned char new_value;

sfr  PWMSET = old_value;

new_value = PWMSET ;
//我主要是想知道是不是类似胡所有寄存器的值能不能被正确读出?这个值和写入的值一样吗?今天周末没事干,突然想到这个菜鸟级的问题,感谢指导答复

if(old_value == new_value){
  //正确
}
else{
  //错误

}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:456
  • 最近打卡:2025-05-02 08:26:53
已绑定手机

27

主题

341

回帖

1691

积分

金牌会员

机长

积分
1691
发表于 2024-7-13 12:50:46 | 显示全部楼层
只能说有些可以有些不行。所有和PWM计数相关的基本上都不行,其它的得再看了
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2024-7-13 14:08:00 | 显示全部楼层
看具体寄存器,大部分是可以的。
但是这样做一般来说,意义不大,特殊功能寄存器,基本没听说写入读出不同的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2024-09-29 08:20:57

6

主题

25

回帖

114

积分

注册会员

积分
114
发表于 2024-7-14 09:37:33 | 显示全部楼层
嗯理解,也就是特殊功能寄存器如果被写入,就一定写对了。除非被写入的值有问题。所以如果发现运行结果和预期的不一样,基本可以排除“没有被成功写入”这个可能性,应该检查值的问题、程序问题等等,对吧?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2024-09-29 08:20:57

6

主题

25

回帖

114

积分

注册会员

积分
114
发表于 2024-7-14 09:41:22 | 显示全部楼层
提出这个问题的源头是因为调试程序的时候,总是考虑到是不是特殊功能寄存器没有被成功赋值,但是这种不成功的赋值又没有方式检查出来
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:416
  • 最近打卡:2025-05-02 08:12:03

10

主题

70

回帖

1311

积分

金牌会员

积分
1311
发表于 2024-7-14 17:37:17 | 显示全部楼层
楼主可以换一种思路,重要的寄存器多写几次同样的数据不就放心了吗,写一次绝大部分都会成功,连写两次三次那就是100%
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3191

回帖

4872

积分

论坛元老

积分
4872
发表于 2024-7-14 19:07:45 来自手机 | 显示全部楼层
加入串口输出,写完延时一定时间后输出写入值。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 23:57 , Processed in 0.112527 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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