黄乃贝 发表于 2023-4-13 09:08:38

STC8H3K64S4-PWM分频器没用作用咋回事,高手请指点

本帖最后由 黄乃贝 于 2023-4-13 09:50 编辑

STC8H3K64S4-想PWM做个频率2hz的控制信号,主频用的22118400, 用
//         PWMA_CNTRH = 11059>>8;
//       PWMA_CNTRL = 11059;      // 试了没法分频
      PWMA_Prescaler(11059);    //试了还是没法分频


      PWMx_InitStructure.PWM_Period   = 1000;                                                // 调周期是可以改变频率   但我现在是想要分频 去改变频率
      PWMx_InitStructure.PWM_DeadTime = 0;                                                                //ËÀÇø·¢ÉúÆ÷ÉèÖÃ, 0~255
      PWMx_InitStructure.PWM_MainOutEnable= ENABLE;                              //Ö÷Êä³öʹÄÜ, ENABLE,DISABLE
      PWMx_InitStructure.PWM_CEN_Enable   = ENABLE;                              //ʹÄܼÆÊýÆ÷, ENABLE,DISABLE
      PWM_Configuration(PWMA, &PWMx_InitStructure);                              //³õʼ»¯PWMͨÓüĴæÆ÷,PWMA,PWMB

      NVIC_PWM_Init(PWMA,DISABLE,Priority_0);
      



神农鼎 发表于 2023-4-13 09:17:40

0.5秒, 是否T2/T3/T4这种24位定时器对外时钟分频输出, 可以不开 T2/T3/T4的中断




黄乃贝 发表于 2023-4-13 09:43:27

神农鼎 发表于 2023-4-13 09:17
0.5秒, 是否T2/T3/T4这种24位定时器对外时钟分频输出, 可以不开 T2/T3/T4的中断




兄弟用定时器输出2hz我肯定会的,现在就是想要用PWM分频来实现这个功能,因为我要调2hz里面波形的占空比,所以pwm更方便。

梁工 发表于 2023-4-13 10:46:28

本帖最后由 梁工 于 2023-4-13 10:49 编辑


PWM时钟分频 = fosc/(PSR+1),PSR=0~65535,则PWM最低频率=fosc/65536/65536,假设主频使用32.768MHz,则PWM最低频率=0.00763Hz,绝对能覆盖楼主99.9999%的应用。
楼主,到下面贴下载例子:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1779

黄乃贝 发表于 2023-4-13 10:56:27

梁工 发表于 2023-4-13 10:46
PWM时钟分频 = fosc/(PSR+1),PSR=0~65535,则PWM最低频率=fosc/65536/65536,假设主频使用32.768MHz,则P ...

        搞定了,谢谢了哈
P_SW2 |= 0x80;                //SFR enable必须使能这个后面的寄存器操作才有效

神农鼎 发表于 2023-4-13 11:19:47

打开后,永远不用关,没冲突的


wyk 发表于 2024-3-22 18:52:17

黄乃贝 发表于 2023-4-13 10:56
搞定了,谢谢了哈
P_SW2 |= 0x80;                //SFR enable必须使能这个后面的寄存器操作才有效 ...

点赞,这句话说到关键位置了,
页: [1]
查看完整版本: STC8H3K64S4-PWM分频器没用作用咋回事,高手请指点