[DemoCode下载] MS51PWM实现中断功能

[复制链接]
 楼主| 稳稳の幸福 发表于 2020-6-30 20:55 | 显示全部楼层 |阅读模式
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/

  6. /***********************************************************************************************************/
  7. /* Website: http://www.nuvoton.com                                                                         */
  8. /*  E-Mail : MicroC-8bit@nuvoton.com                                                                       */
  9. /*  Date   : June/21/2019                                                                                   */
  10. /***********************************************************************************************************/

  11. /************************************************************************************************************/
  12. /*  File Function: MS51 ADC / Bandgap input demo code                                                       */
  13. /************************************************************************************************************/
  14. #include "MS51_32K.h"

  15. /************************************************************************************************************/
  16. /*   PWM interrupt subroutine                                                                               */
  17. /************************************************************************************************************/
  18. void PWM0_ISR (void) interrupt 13

  19. {
  20.     _push_(SFRS);
  21.   
  22.     clr_PWM0CON0_PWMF;               // clear PWM interrupt flag
  23.   
  24.     _pop_(SFRS);
  25. }

  26. /************************************************************************************************************
  27. *    Main function
  28. ************************************************************************************************************/
  29. void main(void)
  30. {

  31. /**********************************************************************
  32.   PWM frequency = Fpwm/((PWMPH,PWMPL) + 1) <Fpwm = Fsys/PWM_CLOCK_DIV>
  33.                 = (16MHz/8)/(0x3FF + 1)
  34.                 = 2.7KHz
  35. ***********************************************************************/
  36.     ENABLE_PWM0_CH2_P05_OUTPUT;
  37.     P05_PUSHPULL_MODE;
  38.     PWM0_CH2_INTERRUPT_SELECT;   

  39.     PWM0_CLOCK_DIV_8;
  40.     PWM0PH = 0x03;                     /*Setting PWM period  */
  41.     PWM0PL = 0xFF;
  42.     PWM0C2H = 0x0;                      /*PWM0 high duty = 1/2 PWM period */
  43.     PWM0C2L = 0xFF;  

  44.     ENABLE_PWM0_INTERRUPT;                     /*Enable PWM interrupt  */
  45.     ENABLE_GLOBAL_INTERRUPT;
  46.     set_PWM0CON0_LOAD;
  47.     set_PWM0CON0_PWM0RUN;
  48.     while(1);
  49. }


 楼主| 稳稳の幸福 发表于 2020-6-30 20:55 | 显示全部楼层
例子给出了如何设置PWM频率
 楼主| 稳稳の幸福 发表于 2020-6-30 20:56 | 显示全部楼层
如何实现PWM中断,相关的说明可以看技术手册。
dongnanxibei 发表于 2020-6-30 21:36 | 显示全部楼层
PWM功能非常有用。
huahuagg 发表于 2020-6-30 22:01 | 显示全部楼层
为何要用输出推挽模式。
huahuagg 发表于 2020-6-30 22:01 | 显示全部楼层
增加PWM的驱动能力吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

203

主题

3409

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部

203

主题

3409

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部