急问,关于STM8 TIM2比较输出

[复制链接]
4473|3
 楼主| jd9945 发表于 2010-9-25 10:52 | 显示全部楼层 |阅读模式
TI, STM8, se, ni, BLE

想输出三种频率,本来是要改变CCR1_Val_1kzh捕获值,但是我现在改变它频率没有变化,非要改变TIM2_TimeBaseInit函数中溢出时基值来改变频率,不知道为什么请知道的指点一下.

  if(temp==1)
    TIM2_TimeBaseInit(TIM2_PRESCALER_2, 1024);    //1khz
  else  if(temp==2)
    TIM2_TimeBaseInit(TIM2_PRESCALER_2, 3800);     //250hz
  else
    TIM2_TimeBaseInit(TIM2_PRESCALER_2, 2800);     //386hz
   
   TIM2_OC1Init(TIM2_OCMODE_TOGGLE, TIM2_OUTPUTSTATE_ENABLE,CCR1_Val_1kzh, TIM2_OCPOLARITY_HIGH);//
  
  TIM2_OC1PreloadConfig(ENABLE);  
  TIM2_ARRPreloadConfig(ENABLE);
  TIM2_Cmd(ENABLE);
香水城 发表于 2010-9-25 13:06 | 显示全部楼层
为什么不呢?
 楼主| jd9945 发表于 2010-9-25 13:45 | 显示全部楼层
不知道,频率输出都是固定的.
用上面的程序是可以改变频率的..
但用下面的方式来设置时就不行, 不知道为什么,,
TIM2_OC1Init(TIM2_OCMODE_TOGGLE, TIM2_OUTPUTSTATE_ENABLE,CCR1_Val_1kzh, TIM2_OCPOLARITY_HIGH);//

TIM2_OC1Init(TIM2_OCMODE_TOGGLE, TIM2_OUTPUTSTATE_ENABLE,CCR1_Val_300hz, TIM2_OCPOLARITY_HIGH);//

TIM2_OC1Init(TIM2_OCMODE_TOGGLE, TIM2_OUTPUTSTATE_ENABLE,CCR1_Val_150hz, TIM2_OCPOLARITY_HIGH);//
香水城 发表于 2010-9-25 13:50 | 显示全部楼层
3楼的程序段是设置占空比,当然不会改变频率。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

84

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部