STC8H单片机PWM的寄存器太多,且有些寄存器的功能看着比较相似,手册介绍的也不太清楚,难以区别,设置起来非常困难,我前前后后阅读器多次并反复设置测试,PWM才正常,但其捕捉功能我现在还没明白。
楼主的PWM没有输出,我在STC8H1K16的4N已输出正常,频率和占空比按照预设要求输出,经对比发现对寄存器的设置有以下不同:
1. PWMA_CCMR4。 楼主设置 0x60=0110 0000,我设置的是0x68=0110 1000,我与楼主相比是多开启了占空比数值预装载功能。官方的例程仅是输出PWM测试,不改变占空比CCR和计数周期ARR的数值,所以官方例程没有开启占空比和计数周期预装载功能,在实际应用时大都需要是是调整占空比和频率,更改预装载值,故大多数情况下是开启。 2. PWMA_CCER2。楼主设置0x10=0001 0000,使B4位的CC4E=1,开启的是4P比较功能,我设置的是0x40=0100 0000,使B6位的CC4NE=1,开启的是4N比较功能。 我们开启的是4N功能,故PWMA_CCER2应该设置为0x40才行。 3.楼主没有设置PWMA_PS,即PWMA_PS是复位值0x00,其设置为4N在P1.7脚输出;我设置PWMA_PS = 0x40=0100 0000,设置4N在P2.7脚输出。楼主的是STC8H1K08,4N欲在P3.3输出,设置PWMA_PS= 0xC0才行(11000000)。 4.PWMA_CR1。区别同1,我是开启了ARR预装载功能。
|