8.8、ARM接口编程 -- PWM

  • PWM 脉宽调制器:
    方波:占空比:有效电平占整个周期的比值。周期和频率:

使用PWM,输出50HZ 波形
蜂鸣器 GPD0_0 PWM0
F = 100Mhz

1、 配置PWM0
TCFG0:[7:0] = 预分频寄存器 0-255 0xff
TCFG1:[3:0] = 固定分频 1 2 4 8 16 0x4

TCON:
[4] = 0 不使能死区
[3] = 1 使能自动重载
[2] = 1 打开输出使能
[1] = 1 手动更新 tcmpb tcntb
[0] = 启停开关 1 启动 0 关闭

TCNTB0 重载寄存器 [31:0] 重载值 24414
TCMPB0 比较寄存器 [31:0] 比较值 500

TCNTO0 窗口寄存器 (只读)用于读取减法计数器中的值
TINT_CSTAT 中断相关寄存器

50hz = 100M/(y+1)/固定分频/C
256 16 24414

p = 1M/c
c = 1M/p
z = b/c
b = z * c

2、GPIO配置: GPD0_0
GPD0CON [3:0] = 0x2 使能管脚复用为pwm输出功能
8.8、ARM接口编程 -- PWM
每次修改PWM参数的时候,先STOP_PWM,修改了之后再start_pwm。

实现
1、wdt 中断法 实现 sleep msleep
2、pwm 驱动
3、蜂鸣器唱歌

相关文章:

  • 2021-07-18
  • 2021-08-21
  • 2021-10-04
  • 2022-12-23
  • 2021-08-14
  • 2021-08-20
  • 2021-09-27
  • 2021-12-03
猜你喜欢
  • 2021-09-05
  • 2021-04-06
  • 2022-12-23
  • 2021-07-30
  • 2021-09-19
  • 2021-12-05
相关资源
相似解决方案