打印

PWM中断问题

[复制链接]
1409|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
梦想|  楼主 | 2009-3-21 20:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PWM, TE, ST, ps, tc
为什么进不了PWM中断? LPC2132   

程序如下:

/***********************************************
      PWM 中断函数
************************************************/

__irq void motor_pwm(void)
{   
    
 PWMIR =0x01;       //若有中断,清除中断
 VICVectAddr=0x00;
    steps++;        //运行步数加1
 if(steps==m_stepnum)     //判断运行总步数
 {
  PWMPCR   = (0<<13);      // disable PWM5输出
  PWMMCR   =   0x04;         //关闭PWM
  steps=0;       //步数清0        
    }
 
}

//----------------------------------------------------------------
void motor_run(uint32 stepnum,uint32 pps)
{   
    steps    = 0;
    m_stepnum=stepnum;
    m_pps=pps;
    PWMPR    = 0x00;         // 不分频,计数频率为Fpclk
    PWMMCR  = 3;          //设置PWMMR0匹配时复位、中断PWMTC
    PWMPCR   = 0x2000;      // 允许PWM5输出,单边PWM
    PWMMR0   = Fpclk /m_pps;     // PWM0频率
    PWMMR5   = PWMMR0 / 2;     // 50%占空比
    PWMLER   = 0x21;      // PWM0和PWM5匹配锁存
    PWMTCR   = 0x02;               // 复位PWMTC
   PWMTCR   = 0x09;
 
 
//------------------------------------------------------------------                         
 VICIntSelect  =0x00;     //设置PWM5中断通道设置为IRQ中断  
 VICVectCntl7  = 0x20 | 8;    //分配PWM5到向量中断7
 VICVectAddr7  = (uint32)motor_pwm;  //设置中断服务程序地址     
 VICIntEnable |=(1<<8);     //使能PWM5中断  
}



为什么能产生波形,而进不了中断呢? 请高手指点,谢谢
 

相关帖子

沙发
lelee007| | 2009-3-24 01:32 | 只看该作者

沙发!WC借LX用

使用特权

评论回复
板凳
阿南| | 2009-3-24 09:13 | 只看该作者

调试时,不能产生中断通常看源程序是很难发现的,楼主要注意

种寄存器状态标志位,包括处理器外设,以及ARM核的

使用特权

评论回复
地板
bwsz| | 2009-3-24 10:40 | 只看该作者

我可能遇到同样问题

我在KEIL 下做定时中断,仿真时提示对定时器的一些寄存器没写权限。估计跟楼主问题差不多,楼主解决了吗。经验分享下,呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

122

帖子

0

粉丝