8H1K17T,怎么准确读出PWMA_PSCR寄存器的值?
<p>如题!反正我读出来=0。手册23.5.3有句话不太理解,最好给出示例代码:</p><p>“<strong>对PWMA_PSCR寄存器的读操作通过预装载寄存器完成</strong>”</p>
楼上的答复是正解
PWMA_PSCR寄存器的读写注意事项:
1、写PWMA_PSCR寄存器必须先写高字节PWMA_PSCRH,后写低字节PWMA_PSCRL
2、PWMA_PSCR寄存器有缓冲区,写入的新值会先存放在缓冲区内
只有等到下一次更新事件时才会将缓冲区的值装入寄存器
(如果希望写入的值立即生效,可软件触发一次UG更新事件即可 )
3、对PWMA_PSCR进行读取操作,总是读取的是上一次更新事件时装载的值 学习了{:4_197:} 感谢楼上!
我的PWMA工作在(输出)比较模式,更新事件在何时发生?
刚刚试了在下,在工作循环内(昨天是初始化时写入就读回)读出,对了!
仍提两疑问:
1,按说ARR寄存器也是这德性(指有预装载的),它怎么可以读出刚刚写入的值?
2,另外,我控制寄存器PWMA_CR1=0x01,即没有使能预装载,属于立即写入的。
说实在的,“更新”这部分当初就没看明白。反正整出了要的方波,也就没去理解清楚。
Mr_LG 发表于 2024-12-16 12:11
感谢楼上!
我的PWMA工作在(输出)比较模式,更新事件在何时发生?
刚刚试了在下,在工作循环内(昨天是初始 ...
同一个地址对应两个寄存器:预装载寄存器,另一个是PWM使用的寄存器,所以使用读写来区分这两个寄存器,写入的是预装载寄存器,读出的是PWM使用的寄存器。
为了保证一个PWM周期内不被干扰,所以改变预装载寄存器,不会马上改变PWM使用的寄存器,必须等待本次PWM结束,一个新的PWM周期开始(即更新事件),才会将预装载寄存器的值传送至PWM使用的寄存器。
如果初始化时还没启动PWM,则装载时会同时装入PWM使用的寄存器,所以马上可以读取。 梁工 发表于 2024-12-16 17:36
同一个地址对应两个寄存器:预装载寄存器,另一个是PWM使用的寄存器,所以使用读写来区分这两个寄存器, ...
谢谢梁工!
页:
[1]