特权同学

PC2103的PWM编程

0
阅读(23966)

LPC2103的PWM编程

 

  1. 在PINSEL0/1寄存器中设置好需要输出PWM波的管脚功能;
  2. CTCR寄存器设置为定时器模式(默认复位值即可);
  3. 开启PWMCON中相应的MAT位输出PWM功能;
  4. 设置PWM定时时间和占空比等参数:
    • 设置PR寄存器值,即PCLK分频系数,分频后时钟作为TC的计数时钟;
    • 设置匹配寄存器值,需要设置两个匹配寄存器值,假设MR0为PWM输出匹配寄存器,那么需要设置该寄存器计数值,其次,还需要在MR1/2/3中任选一个作为匹配后复位,也就是说,MR1/2/3的值要大于MR0的值。在PWM运行时,初始PWM输出为0,当TC和MR0匹配则PWM输出1,当TC和MR1/2/3匹配则TC值复位且PWM输出0,如此反复。所以占空比即为(MRn – MR0)/ MRn,这里用n代替1/2/3。此外,还需要在MCR寄存器设置相应使用的MR1/2/3与TC值匹配时产生复位。
  5. TCR寄存器分别做如下编程:

1)TCR = 0x02;     // 复位TC和PC

2)TCR = 0x01;                   // 使能定时器