6714|5

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

版主,请教一个TIMx作计数器的问题! [复制链接]

我现在要用TIM1作外部输入脉冲的计数,(在内部进行分频后进行计数,由于是对编码器的输入进行,所以要分频),当计到1000后发生中断,请问我必须要用TIM1_ETR脚吗?用TIM1_CH1输脉冲输入行不?这个TIM1_CH1~4是干什么用的,我一直没看明白,
我看了一下下面的图好像也可以嘛!
timx.JPG
此帖出自stm32/stm8论坛

最新回复

你RCC里面的TIM1时钟有没有使能?呵呵再检查检查吧。。。发个网址你参考参考stm32的定时器的有关时间设置:http://wenku.baidu.com/view/3b4b2e85b9d528ea81c77907.html  详情 回复 发表于 2011-3-20 19:56
点赞 关注
 

回复
举报

88

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 对不起,你的错别字让我无法完整理解你的意思,请改正。
此帖出自stm32/stm8论坛
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
不好意思,我现在要实现的功能是外面来一次中断我去执行读取一下压力传感器的值,但现在由于是外接的电机编码器的信号,速度实在太快,所以我想用TIM1分频功能先将其分频一下,比如来100个脉冲后再产生一次中断,
下面是我的初始化程序:
//外部prx用作time1计数器分频率输入
void PrxConterInit(void)
{
TIM_DeInit(TIM1);
TIM_TimeBaseStructure.TIM_Period = 1;   //计数周期值(范围:0x0000~0xFFFF)TIM_Period设置了在下一个更新事件装入活动的自动重装载寄存器周期的值。它的取值必须在0x0000和0xFFFF之间。
TIM_TimeBaseStructure.TIM_Prescaler = 1;  //TIM_Prescaler设置了用来作为TIMx时钟频率除数的预分频值。它的取值必须在0x0000和0xFFFF之间。
TIM_TimeBaseStructure.TIM_ClockDivision = 0x00;     //设置了时钟分割。
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);     //
TIM_ETRClockMode2Config(TIM1, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
       //TIM_ExtTRGPSC_OFF:    TIM ETRP 预分频 OFF(范围:0,2,4,6)
       //TIM_ExtTRGPolarity_NonInverted: TIM外部触发极性非翻转:高电平或上升沿有效
       //ExtTRGFilter:      外部触发滤波器。该参数取值在0x0和0xF之间。      
TIM_SetCounter(TIM1,0);
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM1,ENABLE);
}
、、、、、、、、、、、
//中断处理程序
void TIM1_UP_IRQHandler(void)
{
static UINT16 temp;
TIM_ClearITPendingBit(TIM1, TIM_IT_Update);
if(sys.powerupFlag) //上电过程中
{
  goto ERROR_CONTER_TIM1;
}


现在管脚我不管了(焊线过去,原来接的是TIM1_CH2好像不行),现在就用TIM1_ETR(PA12=STM32F103V8)

现在出现一个问题:TIM_TimeBaseStructure.TIM_Period 这个值我必须大于等于1,如果设到0的话就会进入不了中断处理程序,这是为什么?

另外再帮我看一下我的初始化有没有什么问题
谢谢!!
此帖出自stm32/stm8论坛
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
因为我现在实际的应用过程中有的必须要先分频才能用,而有的又不能分频了(本来速度就很慢),请问我有什么办法能解决这个问题吗?
如果将TIM_TimeBaseStructure.TIM_Period=1,则至少进行了2分频率,
此帖出自stm32/stm8论坛
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 版主,帮忙看一下,是不是我的哪里设置有问题,还是说TIM_TimeBaseStructure.TIM_Period就必须大于0
此帖出自stm32/stm8论坛
 
 
 

回复

100

帖子

0

TA的资源

一粒金砂(高级)

6
 
你RCC里面的TIM1时钟有没有使能?呵呵再检查检查吧。。。发个网址你参考参考stm32的定时器的有关时间设置:http://wenku.baidu.com/view/3b4b2e85b9d528ea81c77907.html
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表