音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請(qǐng)教一個(gè)PWM中斷的問(wèn)題

作者:z6636 欄目:ARM技術(shù)
請(qǐng)教一個(gè)PWM中斷的問(wèn)題
我想試一下PWM中斷,我的程序如下,怎么不產(chǎn)生中斷?
請(qǐng)大哥指教,謝謝!

/**************************************************************/
#include  "config.h"
#define  CYCLE_DATA    2000

#define      BEEPCON    0x00000080    /* P0.7引腳控制B1,低電平蜂鳴 */

/************************************************************/
void   __irq IRQ_Pwm6(void)
{  uint32 DUTY_CYCLE_DATA =0,i;
   
   if(DUTY_CYCLE_DATA < 2000)
   {
   DUTY_CYCLE_DATA = DUTY_CYCLE_DATA +1;
   PWMMR0 = CYCLE_DATA;            // 設(shè)置PWM周期
   PWMMR6 = DUTY_CYCLE_DATA;    // 設(shè)置PWM占空比   

   PWMLER = 0x41;            // PWMMR0、PWMMR6鎖存
   PWMTCR = 0x09;            // 啟動(dòng)定時(shí)器,PWM使能
   }
   else DUTY_CYCLE_DATA =0;
   {
   PWMMR0 = CYCLE_DATA;            // 設(shè)置PWM周期
   PWMMR6 = DUTY_CYCLE_DATA;    // 設(shè)置PWM占空比   

   PWMLER = 0x41;            // PWMMR0、PWMMR6鎖存
   PWMTCR = 0x09;            // 啟動(dòng)定時(shí)器,PWM使能
   }   

   i = IO0SET;                // 讀取當(dāng)前B1控制值
   if( (i&BEEPCON)==0 )            // 控制B1輸出取反
   {  IO0SET = BEEPCON;
   }
   else
   {  IO0CLR = BEEPCON;
   }
   PWMIR = 0x01;                // 清除PWM0中斷標(biāo)志
   VICVectAddr = 0;            // 向量中斷結(jié)束  
}        
            
/**********************************************************/
int  main(void)
{
   PINSEL0 |= 0x00080000;        // 設(shè)置PWM6連接到P0.9管腳
   IO0DIR = BEEPCON;        // 設(shè)置B1控制口為輸出      
   PWMPR = 0x00;            // 不分頻,計(jì)數(shù)頻率為Fpclk
   PWMMCR = 0x01;            // 設(shè)置PWMMR0匹配時(shí)中斷
   PWMMR0 = CYCLE_DATA;            // 設(shè)置PWM周期
   PWMMR6 = 100;            // 設(shè)置PWM占空比
   
   PWMLER = 0x41;            // PWMMR0、PWMMR6鎖存
   PWMPCR = 0x4000;        // 允許PWM6輸出,單邊PWM
   PWMIR = 0x01;            // 清除PWM0中斷標(biāo)志    
   PWMTCR = 0x09;            // 啟動(dòng)定時(shí)器,PWM使能
   

   
   /* 打開(kāi)PWM0中斷(設(shè)置向量控制器,即使用向量IRQ) */
   VICIntSelect = 0x00000000;    // 設(shè)置所有中斷分配為IRQ中斷
   VICVectCntl0 = 0x28;        // 分配PWM0中斷到向量中斷0
   VICVectAddr0 = (int)IRQ_Pwm6;     // 設(shè)置中斷服務(wù)程序地址
   VICIntEnable = 0x00000100;    // 使能PWM0中斷
   
   while(1);            // 等待中斷
   return(0);
}



2樓: >>參與討論
zlgarm
re:
PWMMCR 寄存器應(yīng)設(shè)置為0x03,PWMMR0匹配后產(chǎn)生中斷,還要復(fù)位PWMTC。

需要打開(kāi)IRQ中斷允許(即CPSR寄存器的I位,在StartUP.S文件中)。

3樓: >>參與討論
z6636
xiexie
 
參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
一個(gè)關(guān)于MAM的萊鳥(niǎo)問(wèn)題
LCD12232 For ARMlpc214x 顯示程序移植OK.
問(wèn)個(gè)關(guān)于ucosII的簡(jiǎn)單問(wèn)題
求教!不使用操作系統(tǒng)時(shí),可以使用文件函數(shù)fread,fseek嗎?
菜鳥(niǎo)問(wèn)題
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)