【求助】STM8S103FP6的TIM2的捕获功能
想用STM8S103FP6的TIM2的捕获功能测仪方波的脉宽,但每次采集回来的数都是0。///////////////////////////////////TIM2初始化///////////////////////////////////////////
void Tim2_Init(void)
{
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_8, 0x0000);
TIM2_ICInit(TIM2_CHANNEL_1, TIM2_ICPOLARITY_RISING, TIM2_ICSELECTION_DIRECTTI, TIM2_ICPSC_DIV1, 0x00);
TIM2_ITConfig(TIM2_IT_CC1, ENABLE);
TIM2_ARRPreloadConfig(ENABLE);
enableInterrupts();
TIM2_Cmd(ENABLE);
}
/////////////////////////////////TIM2中断//////////////////////////////////////////////
INTERRUPT_HANDLER(TIM2_CAP_COM_IRQHandler, 14)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
TIM2_ClearITPendingBit(TIM2_IT_CC1);
TCS_OK;
yz=TIM2_GetCapture1();
i++;
if(i==0xff)
{
i=0;
}
}
/////////////////////////////main函数中UART发送部分///////////////////////////////////
UART1_SendData8(yz/256);
UART1_SendData8(yz%256);
RE:【求助】STM8S103FP6的TIM2的捕获功能
没玩过stm8,研究了半小时也没看明白出现什么问题,哎,失败RE:【求助】STM8S103FP6的TIM2的捕获功能
//捕获状态//:0,没有成功的捕获;1,成功捕获到一次.
//:0,还没捕获到低电平;1,已经捕获到低电平了.
//:捕获低电平后溢出的次数
u8TIM2CH2_CAPTURE_STA=0; //输入捕获状态
u16 TIM2CH2_CAPTURE_VAL; //输入捕获值
//定时器2捕获中断服务函数
INTERRUPT_HANDLER(TIM2_UPD_OVF_IRQHandler,TIM2_UPD_OVF_VECTOR)
{
u8 tsr;
static u8 led;
tsr=TIM2->SR1;
if((TIM2CH2_CAPTURE_STA&0X80)==0)//还未成功捕获
{
if(tsr&0X01)//溢出
{
if(TIM2CH2_CAPTURE_STA&0X40)//已经捕获到高电平了
{
if((TIM2CH2_CAPTURE_STA&0X3F)==0X3F)//高电平太长了
{
TIM2CH2_CAPTURE_STA|=0X80;//标记成功捕获了一次
TIM2CH2_CAPTURE_VAL=0XFFFF;
}else TIM2CH2_CAPTURE_STA++;
}
}
}
LED1_SET(led=!led);
TIM2->SR1&=~(1CCR2H;//获取当前的捕获值.
TIM2CH2_CAPTURE_VALCCER1|=1CNTRL=0; //计数器清空
TIM2CH2_CAPTURE_STA=0; //清空
TIM2CH2_CAPTURE_VAL=0;
TIM2CH2_CAPTURE_STA|=0X40; //标记捕获到了下降沿
TIM2->CCER1&=~(1
RE:【求助】STM8S103FP6的TIM2的捕获功能
初始化模块检查下RE:【求助】STM8S103FP6的TIM2的捕获功能
参考下http://www.amobbs.com/thread-5513154-1-1.html 我用TIM2_CH2也是捕获都是0,还有TIM2_CH1为什么有2个IO都有PD4和PC5,捕获是随便用一个就可以吗 yangjiawei1223 发表于 2015-5-29 11:24我用TIM2_CH2也是捕获都是0,还有TIM2_CH1为什么有2个IO都有PD4和PC5,捕获是随便用一个就可以吗 ...
你解决了吗?我也是使用PD3(TIM2CH2)进不了中断
:):):):):):):):) INTERRUPT_HANDLER(TIM2_CAP_COM_IRQHandler, 14)
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
这两个TIM2中断函数不一样哦
页:
[1]