930电子网

 找回密码
 立即注册
艾克姆科技推出最新产品STC32G12K128开发板
查看: 18717|回复: 1

PWM波的设置

[复制链接]

8

主题

13

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2020-12-17 17:50:41 | 显示全部楼层 |阅读模式
拿到的是一份老代码 没有用官方的案例 drive或者lib 都不是 是直接操作的
我自己用LED的管脚P0.25测试了一下 可以控制LED的亮度
代码如下 问题的若干参数的不理解
void test_pwm(void)
{   
    uint16_t pwm_seq[2];
    nrf_gpio_cfg_output(G_PWM_REST_PIN_NUM);
    nrf_gpio_pin_set(G_PWM_REST_PIN_NUM);
    /// Setting Pulse Duration Time
    pwm_seq[0] = 0;
    pwm_seq[1] = 900;

    /// Setting Pin Number
    NRF_PWM0->PSEL.OUT[0] = (G_PWM_REST_PIN_NUM << PWM_PSEL_OUT_PIN_Pos) |
    (PWM_PSEL_OUT_CONNECT_Connected << PWM_PSEL_OUT_CONNECT_Pos);

    NRF_PWM0->ENABLE      = (PWM_ENABLE_ENABLE_Enabled << PWM_ENABLE_ENABLE_Pos);
    NRF_PWM0->MODE        = (PWM_MODE_UPDOWN_Up << PWM_MODE_UPDOWN_Pos);
    /// Setting PWM0 Frequency

    NRF_PWM0->PRESCALER   = (PWM_PRESCALER_PRESCALER_DIV_16 << PWM_PRESCALER_PRESCALER_Pos);
    /// Setting Loop Counter (256 Hz or 32 Hz depend on PWM0 Frequency)
    NRF_PWM0->COUNTERTOP  = (1000 << PWM_COUNTERTOP_COUNTERTOP_Pos);

    NRF_PWM0->LOOP        = (PWM_LOOP_CNT_Msk << PWM_LOOP_CNT_Pos);//(PWM_LOOP_CNT_Msk << PWM_LOOP_CNT_Pos); 没有区别

    NRF_PWM0->DECODER   = (PWM_DECODER_LOAD_Common << PWM_DECODER_LOAD_Pos) |
                          (PWM_DECODER_MODE_RefreshCount << PWM_DECODER_MODE_Pos);

    NRF_PWM0->SEQ[0].PTR  = ((uint32_t)(pwm_seq) << PWM_SEQ_PTR_PTR_Pos);
    NRF_PWM0->SEQ[0].CNT  = ((sizeof(pwm_seq) / sizeof(uint16_t)) << PWM_SEQ_CNT_CNT_Pos);//2
    NRF_PWM0->SEQ[0].REFRESH  = 0;
    NRF_PWM0->SEQ[0].ENDDELAY = 0;


    NRF_PWM0->TASKS_SEQSTART[0] = 1;
}


可以看到LED比较亮的
示波器看到占空比10% 【因为我设置的是    NRF_PWM0->COUNTERTOP  = 1000   pwm_seq[1] = 900; 】-----------问题是 pwm_seq[0] 是起什么作用的?
回复

使用道具 举报

52

主题

354

帖子

6545

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6545
发表于 2020-12-21 09:49:02 | 显示全部楼层
pwm_seq[0] 是用来配置PWM序列的寄存器。
SEQ[0].PTR:PWM序列在RAM中的起始地址(因为是DMA的,所以序列的数值需要存放到片内RAM)。
SEQ[0].CNT:序列的值(占空比)
SEQ[0].REFRESH:样本加载到比较寄存器之间的附加PWM周期数。
SEQ[0].ENDDELAY:序列后插入的延时时间。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|官方淘宝店|930电子网 ( 皖ICP备16000695号-2 )

GMT+8, 2024-11-23 18:17 , Processed in 0.064479 second(s), 21 queries .

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