打印

关于RCR的溢出与计数器的溢出更新中断的问题

[复制链接]
1929|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
风走孤寒|  楼主 | 2012-3-27 11:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void TIM3_Config(u16 PeriodVal3)
{
  TIM_TimeBaseInitTypeDef  TIM_TimeInitStructure;
  TIM_OCInitTypeDef  TIM_OCInitStructure;
/*      计数器的配置                                      */
  TIM_TimeInitStructure.TIM_Period=PeriodVal3; //周期的选择
  TIM_TimeInitStructure.TIM_Prescaler=79; //分频的值,
  TIM_TimeInitStructure.TIM_ClockDivision=0;  //我也不是很懂啥意思
  TIM_TimeInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数
  TIM_TimeInitStructure.TIM_RepetitionCounter=200;//重复计数器的值
  TIM_TimeBaseInit(TIM3,&TIM_TimeInitStructure);
/*        通道的输出模式                                       */  
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;  //模式的pwm1
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //输出的使能
  TIM_OCInitStructure.TIM_Pulse = PeriodVal3>>1; //占空比一直都是50%
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //通道的极性高
  TIM_OC1Init(TIM3,&TIM_OCInitStructure);  //初始化
/*          以下的功能自定义                                              */
  TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);//通道寄存器预加载自动
  TIM_ARRPreloadConfig(TIM3, ENABLE);//计数寄存器预加载自动
  TIM_Cmd(TIM3, ENABLE);//定时器的使能
  TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//更新中断使能
}
void TIM3_IRQHandler(void)//中断函数
{
  if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
      {  TIM_Cmd(TIM3,DISABLE);
         TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
      }
}
为什么RCR的值对其没有任何影响呢。每次都是计算器溢出产生的更新中断,而不是RCR溢出产生的中断,要怎么配置,才能更新中断时RCR产生的,求教
沙发
90chinazhu| | 2014-4-12 16:31 | 只看该作者
mark,我用TIM1仿真也这样。不过,好像只有高级控制定时器(TIM1和TIM8)有RCR,TIM3没有RCR

使用特权

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

本版积分规则

0

主题

4

帖子

0

粉丝