打印

STR9定时器0捕获功能问题

[复制链接]
2537|6
手机看帖
扫描二维码
随时随地手机跟帖
楼主
8yuuu|  楼主 | 2010-2-24 21:36 | 只看该作者 回帖奖励 |倒序浏览

STR9定时器0捕获功能问题

我现在用STR912的定时器0作外部上升延捕获,仿真时已确定TIM0计数正常,捕获管脚定义为P4.0,(具体该怎么配置为该管脚的第2输入功能,并不非常确定正确) 但是就是进不了捕获功能,产生不了捕获中断,不知道谁做过该实验,有愿意共享经验么?

使用特权

评论回复
沙发
8yuuu|  楼主 | 2010-3-2 20:02 | 只看该作者 |阅读模式
我现在用STR912的定时器0作外部上升延捕获,仿真时已确定TIM0计数正常,捕获管脚定义为P4.0,(具体该怎么配置为该管脚的第2输入功能,并不非常确定正确) 但是就是进不了捕获功能,产生不了捕获中断,不知道谁做过该实验,有愿意共享经验么?可怜ST都不提供例程,我都不知道错在那里,可惜啊
板凳
pkat| | 2010-3-2 21:52 | 只看该作者
捕获中断使能了吗,程序贴出来看看

使用特权

评论回复
地板
8yuuu|  楼主 | 2010-3-4 19:18 | 只看该作者
贴上相关代码,望指点
/* Enable the GPIO4 Clock */
   SCU_APBPeriphClockConfig(__GPIO4, ENABLE);
/* Enable the TIM01 Clock */
   SCU_APBPeriphClockConfig(__TIM01, ENABLE);
    /*配置捕获输入管脚,使用P4.0为捕获输入脚*/
GPIO_DeInit(GPIO4);
    GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Direction = GPIO_PinInput;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Type = GPIO_Type_OpenCollector;
GPIO_InitStructure.GPIO_Alternate = GPIO_InputAlt1;
GPIO_InitStructure.GPIO_IPConnected = GPIO_IPConnected_Enable;
GPIO_Init (GPIO4, &GPIO_InitStructure);  //P4.0 TIM0_ICAP1输入


/* TIM0设置 */
TIM_DeInit(TIM0);                          /* TIM0 Deinitialization */
   /* TIM0 Structure Initialization */
   TIM_StructInit(&TIM_InitStructure);
   
   /* TIM0 Configuration in PWM Mode */
   TIM_InitStructure.TIM_Mode = TIM_ICAP_CHANNEL_1;     //1通道输入捕获
TIM_InitStructure.TIM_Clock_Source = TIM_CLK_APB;  
TIM_InitStructure.TIM_Prescaler = 255;   
TIM_InitStructure.TIM_ICAP1_Edge = TIM_ICAP1_EDGE_FALLING; //通道1为上升延捕获

   TIM_Init (TIM0, &TIM_InitStructure);
   TIM_ITConfig(TIM0, TIM_IT_IC1, ENABLE);
   TIM_CounterCmd(TIM0, TIM_START);
   
   /* 系统中断设置 */
   SCU_AHBPeriphClockConfig(__VIC,ENABLE);
VIC_DeInit();
VIC_Config(TIM0_ITLine, VIC_IRQ, 1);
   VIC_ITCmd(TIM0_ITLine, ENABLE);
   
/* 中断函数 */
/*******************************************************************************
* Function Name  : TIM0_IRQHandler
* Description    : This function handles the TIM0 interrupt request
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void TIM0_IRQHandler(void)
{
TIM_ClearFlag(TIM0, TIM_FLAG_IC1);
}

使用特权

评论回复
5
xsgy123| | 2010-3-4 21:47 | 只看该作者
用示波器看看输入有没波形

使用特权

评论回复
6
monica_hehe| | 2010-3-4 22:13 | 只看该作者
没有这样用,没有用管脚进行中断的计数方式

使用特权

评论回复
7
8yuuu|  楼主 | 2010-3-8 12:18 | 只看该作者
输入有波形的
楼上兄弟不知道是什么意思?  这样做捕获不对么?

使用特权

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

本版积分规则

24

主题

68

帖子

0

粉丝