打印
[STM8]

stm8 105 捕获就差0.几HZ

[复制链接]
2124|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
swg897570|  楼主 | 2013-6-27 23:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
hz, STM8, TI, ce, tc
贴程序
/*******************************************************/   主程序
#pragma vector=0x10
__interrupt void TIM2_CAP_COM_IRQHandler(void)  //捕获1
  {
  
  if ( TIM2_GetFlagStatus(TIM2_FLAG_CC1) == SET )
        {
         
        switch(BH.key)
            {
              case 0:{
               BH.hr_buhuo1 = TIM2_GetCapture1();
               BH.key=1;
               TIM2_CCER1_CC1P=1;   //下降沿
               }break;
              
              case 1:{
                BH.hr_buhuo3 = TIM2_GetCapture1();
                TIM2_CCER1_CC1P=0;   //上升沿
                BH.key=2;
                }break;
            
              case 2:{
                BH.hr_buhuo2 = TIM2_GetCapture1();
                BH.hr_buhuo2=BH.hr_buhuo2-BH.hr_buhuo1;
                TIM2_CCER1_CC1P=1;   //下降沿
            
                BH.key=3;
                }break;
            
              case 3:{
                BH.hr_buhuo4 = TIM2_GetCapture1();
                BH.hr_buhuo4=BH.hr_buhuo4-BH.hr_buhuo3;
                BH.hr_buhuo=BH.hr_buhuo4+BH.hr_buhuo2;
                BH.hr_pl=PL_psc/BH.hr_buhuo;     //检测的频率
                SPEED_BUZ=(BH.hr_pl/2)*60;   //检测的实际转速
               TIM2_CCER1_CC1P=0;   //上升沿
                BH.key=0;
                }break;         
            }
        }
  
        TIM2_ClearITPendingBit(TIM2_IT_CC1);
        TIM2_ClearFlag(TIM2_FLAG_CC1);

}
/*****************************************/  初始化
void time2_init(void)      //捕获
  {
  
      TIM2_PSCR=0x08;         //2的8次分频256  最大65535分频 (16000000/256=16us, 16X65535=1.04S  最小1hz)      
      TIM2_ARRH = 0xff;            
      TIM2_ARRL = 0xff;  
      TIM2_CCMR1=0X01;      //01:CC1通道被配置为输入,IC1映射在TI1FP1上
      TIM2_IER_CC1IE=1;   //允许捕获/比较1中断
      TIM2_CCER1=0x01;    //使能捕获
      TIM2_Cmd(ENABLE);   //使能TIM3计数
  }
/**************************************************/  //常数

#define PL_psc          125000                //(单片机频率/PSC分频数=PL_psc)



就是差几转,高手帮忙看看有没有问题 输入捕获10-300HZ,谢谢了
沙发
食肉狼| | 2013-9-3 16:53 | 只看该作者
10~300HZ 应该可以做到误差为0

使用特权

评论回复
板凳
zeluo| | 2013-9-3 19:39 | 只看该作者
需要这么精准   楼主   这个  就比较有点头疼了

使用特权

评论回复
地板
zeluo| | 2013-9-3 19:40 | 只看该作者
帮你顶一个   不知道这么精确   后面的产品   能不能复现

使用特权

评论回复
5
swg897570|  楼主 | 2013-9-16 21:08 | 只看该作者
食肉狼 发表于 2013-9-3 16:53
10~300HZ 应该可以做到误差为0

不可能,除非晶振16000000

使用特权

评论回复
6
食肉狼| | 2013-9-17 12:56 | 只看该作者
swg897570 发表于 2013-9-16 21:08
不可能,除非晶振16000000

你要精确到小数位?

使用特权

评论回复
7
swg897570|  楼主 | 2013-9-17 21:33 | 只看该作者
shi  de a

使用特权

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

本版积分规则

个人签名: http://swg8888.taobao.com/

27

主题

142

帖子

1

粉丝