找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2808|回復: 0
收起左側

N76E003 PWM中斷及設定新的占空比

[復制鏈接]
ID:16201 發(fā)表于 2019-11-11 23:05 | 顯示全部樓層 |閱讀模式
首先還是來看看PWM中斷寄存器,及其含義。
PWM模塊帶有標志位 PWMF (PWMCON0.5) 用來標志當前 PWM周期完成狀態(tài)。PWMF通過軟件清零。
別忘記了使能PWM中斷,以及開啟總中斷。
再來看看PWM中斷的中斷號。

就是這么簡單,就是這么直接,接下來我們就開始配置代碼吧。
在本次的例程中,我們將在中斷中,修改初始設定的占空比,最后再邏輯分析儀中進行查看。
  1. void main(void)
  2. {
  3.     Set_All_GPIO_Quasi_Mode;//所有IO設置為雙向模式

  4.                                                         EA=1;//開啟總中斷
  5.                                                         set_EPWM;//使能pwm中斷
  6.                                  PWM_INT_PWM4;//設定中斷源為PWM4
  7.                     PWM_FALLING_INT;//下降沿觸發(fā)
  8.             
  9.             
  10.                                                         PWM5_P03_OUTPUT_ENABLE;//使能PWM5,通過P03引腳輸出
  11.                                                         PWM4_P01_OUTPUT_ENABLE;
  12.             
  13.         clr_PWMTYP;//邊沿對齊模式
  14.         clr_PWMMOD0;//設置為獨立輸出模式
  15.         clr_PWMMOD1;
  16.             
  17.         PWM_CLOCK_DIV_8;//8分頻模式
  18.         PWMPH = 0x07;//1999(Dec)
  19.         PWMPL = 0xCF;

  20. /**********************************************************************
  21.               PWM frequency = Fpwm/((PWMPH,PWMPL) + 1) <Fpwm = Fsys/PWM_CLOCK_DIV>
  22.                                                                                                                 = (16MHz/8)/(0x7CF + 1)
  23.                                                                                                                 = 1KHz (1ms)
  24.                                                                                                                
  25.               PWMDT=(PDTCNT+1)/Fpwm              =10/2Mhz=0.005ms
  26. ***********************************************************************/            
  27.             
  28.     set_SFRPAGE;//PWM4 and PWM5 duty seting is in SFP page 1
  29.     PWM4H = 0x01;//500(Dec)               
  30.     PWM4L = 0xf4;
  31.                            
  32.                             PWM5H = 0x01;//500(Dec)               
  33.     PWM5L = 0xf4;
  34.                            
  35.     clr_SFRPAGE;                                          
  36.                 set_LOAD;//載入周期和占空比
  37.     set_PWMRUN;//開始輸出PWM
  38.     while(1)
  39.     {
  40.        //構建你的代碼
  41.     }
  42. }


  43. void PWMISR() interrupt 13
  44. {
  45.               if(PWMF)//檢測到中斷標志位
  46.               {
  47.                               clr_LOAD;//關閉載入之前的值
  48.                               clr_PWMF;//清楚PWM中斷標志位                                  Timer0_Delay1ms(1)
  49.                                           set_SFRPAGE;//PWM4 and PWM5 duty seting is in SFP page 1
  50.                                           PWM5L-=30;
  51.                                           clr_SFRPAGE;  
  52.                                           set_LOAD;//設定完成,開始載入
  53.               }
  54. }
復制代碼

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表