3695|0

2606

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

捕获比较寄存器的疑问 [复制链接]

朋友的疑问:
请教这样一段程序
void TIM2_IRQHandler(void)
{
  /* TIM2_CH1 toggling with frequency = 183.1 Hz */
  if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)
  {
    TIM_ClearITPendingBit(TIM2, TIM_IT_CC1 );
capture1 = TIM_GetCapture1(TIM2);
TIM_SetCompare1(TIM2, capture1 + CCR1_Val );
  }
  
  /* TIM2_CH2 toggling with frequency = 366.2 Hz */
  if (TIM_GetITStatus(TIM2, TIM_IT_CC2) != RESET)
  {
     TIM_ClearITPendingBit(TIM2, TIM_IT_CC2);
capture2 = TIM_GetCapture2(TIM2);
    TIM_SetCompare2(TIM2, capture2 + CCR2_Val);
  }
  /* TIM2_CH3 toggling with frequency = 732.4 Hz */
  if (TIM_GetITStatus(TIM2, TIM_IT_CC3) != RESET)
  {
    TIM_ClearITPendingBit(TIM2, TIM_IT_CC3);
capture3 = TIM_GetCapture3(TIM2);
    TIM_SetCompare3(TIM2, capture3 + CCR3_Val);
  }
  /* TIM2_CH4 toggling with frequency = 1464.8 Hz */
  if (TIM_GetITStatus(TIM2, TIM_IT_CC4) != RESET)
  {
    TIM_ClearITPendingBit(TIM2, TIM_IT_CC4);
capture4 = TIM_GetCapture4(TIM2);
    TIM_SetCompare4(TIM2, capture4 + CCR4_Val);
  }  
}
其中 capture4 = TIM_GetCapture4(TIM2);
    TIM_SetCompare4(TIM2, capture4 + CCR4_Val)
这两个语句是用来获得捕获比较寄存器的数值,并且再叠加上CCRX_Val变量的数值重新赋值给不活比较寄存器。
那么我有一个疑问,如果这个中断不断执行,是不是captureX里面的述职会不断增加知道溢出?也就是这样比产生的方波频率是始终变化的?
点赞 关注
个人签名工程 = 数学+物理+经济
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表