我想使用RA2L1的PWM控制ws2812灯带(通过DTC传输改变GTCCRA从而改变每个周期的占空比),RA2L1只有DTC没有DMAC,尝试使用PWM+DTC,源地址为GPT的GTCCRA的设置值数据buff,目的地址为GPT的GTCCRA,DTC触发源为GPT溢出中断,发现DTC传输启动后源地址的值有增加、待传计数也有减少,但是GTCCRA并没有改变。
请问这种使用PWM+DTC的方式是否可行,或者有参考资料吗?
你好,
GTCCRA寄存器是无法直接写入的,所以想要直接修改GTCCRA是不可行的,如果只是想要修改占空比的话,请参考下列代码:
谢谢。
我使用 R_GPT_DutyCycleSet可以设置成功,我看了一下 R_GPT_DutyCycleSet里面要设置CRA通道时是把值设置给了GTCCRC,我又查阅了用户指南,GTCCRC为GTCCRA的缓冲器,每当溢出时把GTCCRC的值传送给GTCCRA
但是这样理论上DTC应该可以把目的地址设置为GTCCRC,每次溢出时DTC源地址buff的数据依次传送给GTCCRC再传送给GTCCRA。我尝试了一下把目的地址设置为GTCCRC,结果GTCCRC的值还是没有变化,GTCCRA也没有变