勇Z的心 发表于 2014-4-18 11:48:58

STM8S pwm输入捕获 进入不了中断 贴代码

void GPIO_Init(void)

 PC_DDR |=0x80;
  PC_CR1 |=0x80;/*OUTPUT*/
  PC_CR2 &=0x7f;/*PC7*/
 
 PC_DDR &=0xbf;
  PC_CR1 &=0xbf;/*Input*/
  PC_CR2 &=0xbf;/*PC6*/
 
 PC_DDR|=0x20;
  PC_CR1|=0x20;/*OUTPUT*/
  PC_CR2&=0xdf;/*pc5*/
}
 

void TIM2_Init(void)
{
   TIM2_IER =0x00;
   TIM2_EGR=0x01;
 
    TIM2_PSCR = 0X04;  /*Configure TIM2 prescaler=1MHZ */
  
    TIM2_ARRH  =1000/256;            
    TIM2_ARRL  =1000%256;/*1ms*/
   
    TIM2_IER |=0X01;
  TIM2_CR1|=0X81;//ENABLE TIM1   
}

void TIM1_CatchInit(void)

   TIM1_IER =0x00;
   TIM1_EGR=0x01;
 
  
 //  TIM1_SR1_CC1IF &=0xf9;
// TIM1_SR1_CC2IF =0x00; 
  
  TIM1_CCER1&=0xee;//DISABLED TIM1 
   TIM1_CCMR1|=0x01;
   TIM1_CCER1&=0xec;
   TIM1_CCMR2|=0x02;
 //TIM1_CCMR2&=0xfe;
   TIM1_CCER1|=0x20;
   TIM1_SMCR |=0x54;
 
  TIM1_PSCRH = 0x00;
   TIM1_PSCRL = 0x0F;  /*Configure TIM1 prescaler=1MHZ */
     
   TIM1_IER |=0X06;
 
  TIM1_CCER1|=0x11;//ENABLED TIM1  catch
 
  TIM1_CR1|=0X81;//ENABLE TIM1CNT
//   TIM1_CCER1_CC1E=0X01;
//   TIM1_CCER1_CC2E=0X01;/*ENABLED  INPUT  INTERRUPT*/
 //  TIM1_CR1|=0X81;//ENABLE TIM1
}
 
@far @interrupt void TIM1_Compare(void)
{
  if((TIM1_SR1&0x02)==0x02)
 {
  TIM1_SR1&=0xfd;
  PWM_FLAG++;
 }
  if((TIM1_SR1&0x04)==0x04)
 {
  TIM1_SR1&=0xfb;
  PWM_FLAG++;
 }
}
 
 
问题是我用TIM2定时器控制PC5高低电位模拟PWM信号,然后输入到PC6通道,PC6也就是TIM1_CH1通道吧   应该能进入捕获中断    查了好久找不到原因  我参考的帖子http://www.doc88.com/p-8179991153683.html写的  

勇Z的心 发表于 2014-4-18 11:55:09

回复:STM8S pwm输入捕获 进入不了中断 贴代码

没人看呀!.....

wkuang 发表于 2014-4-22 23:36:00

RE:STM8S pwm输入捕获 进入不了中断 贴代码

1)确认下你的PC5输出正常不??有没有pwm波形;
这个是前提
页: [1]
查看完整版本: STM8S pwm输入捕获 进入不了中断 贴代码