stm8输出比较电平不翻转

2019-07-19 21:04发布

可以进中断,也配置了选项字,然后PC6一直为高电平;后来把PC6配置为输出模式,然后就一直为低电平,就是不翻转,求解!!!!!!!!!

void Tim1_CAP_Iint(void)
{
  TIM1_ETR=0x00;//禁止外部时钟模式2;
  TIM1_CR1=0X80;//预装载使能,边沿对齐,向上计数,禁止计数

  TIM1_PSCRH=1599/256;//预分频器高 8位,1599+1=1600分频,osi=16M,
  TIM1_PSCRL=1599%256;//预分频器低 8位,所以计数器加1时间是100us

  TIM1_ARRH=1000/256;//预装载值65535,1s钟取反
  TIM1_ARRL=1000%256;//高位寄存器先读写,再低位寄存器

  TIM1_CCR1H=1000/256;
  TIM1_CCR1L=1000%256;  

  //TIM1_EGR=0x01;//产生更新事件,初始化寄存器

  TIM1_IER=0x02;//使能捕获/比较1中断  
  TIM1_CCMR1=0x30;//cc1配置为输出,翻转

}
/************************************************************/
/*********************定时器1输入捕获开始***************************************/
/************************************************************/
void Tim1_CAP_Begin(void)
{
  TIM1_CCER1=0x01;//cc1使能比较输出
  TIM1_CR1|=0x01;//使能计数器
}


void gpio_init()
{
   PD_DDR|=0X08;//PD3为输出模式
   PD_CR1|=0X08;//推挽输出
   PD_CR2|=0X08;//输出速度10MHZ

   PC_DDR|=0X40;//PD3为输出模式
   PC_CR1|=0X40;//推挽输出
   PC_CR2|=0X40;//输出速度10MHZ
}


#pragma vector = 14     //设置定时器4重载的中断向量号 = 25
__interrupt void TIM1_CAP_IRQHandler(void)
{
  TIM1_SR1&=0XFD;//清0捕获比较1中断标志位
  INTTYPE=TIM1_SR1&0X01;//取出UIF位,判断CNT是否溢出

   TIM1_CCR1H+=(1000/256);
   TIM1_CCR1L+=(1000%256);  

  if(INTTYPE==0x01)
    {
      TIM1_SR1&=0xfe;
    }
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。