打印
[STM8]

请问有哪位好心大哥可以发份 stm8的输入捕获的程序,最好是库的。

[复制链接]
677|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
15236227719|  楼主 | 2016-1-1 15:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问有哪位好心大哥可以发份 stm8的输入捕获的程序,最好是库的。
沙发
zcc1837296405| | 2016-1-6 09:39 | 只看该作者
设置管脚,设置中断,捕获,处理

使用特权

评论回复
板凳
huangcunxiake| | 2016-1-6 15:09 | 只看该作者
我刚好有这个资料
第一部:
内部时钟 CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //16M
第二步:
配置IO口 我用的是STM8S103k3t6
GPIO_Init(GPIOB , GPIO_PIN_0 , GPIO_MODE_IN_PU_NO_IT);//TIM1_CH1 PB0端口
第三步:TIM1初始化,
注意:
tim1 分频是16000000/1600 =10000
那计数一下的时间是!1/10000 S
向上计数 0到20000 的时间是2S

void TIME1_INIT(void)
{
TIM1_DeInit();
TIM1_TimeBaseInit(1600, TIM1_COUNTERMODE_UP, 20000, 0);
TIM1_ICInit( TIM1_CHANNEL_1, TIM1_ICPOLARITY_RISING, TIM1_ICSELECTION_DIRECTTI , TIM1_ICPSC_DIV8, 0x0);
TIM1_ITConfig( TIM1_IT_CC1 , ENABLE);
TIM1_ClearFlag(TIM1_FLAG_CC1);
TIM1_Cmd(ENABLE);
}

第四步: TIM4用来产生溢出中断用的!
void TIME4_INIT(void)
{
TIM4_TimeBaseInit(TIM4_PRESCALER_32 ,250);
TIM4_ARRPreloadConfig(ENABLE);
TIM4_PrescalerConfig(TIM4_PRESCALER_32,TIM4_PSCRELOADMODE_IMMEDIATE);
TIM4_SetAutoreload(250);
TIM4_Cmd(ENABLE);
TIM4_ITConfig(TIM4_IT_UPDATE,ENABLE);
}

第五步: TIM1的中断程序 连续进入两次中断,两次计数的值 乘 第三步中计数一下的时间 就是脉宽
// if(TIM1_GetFlagStatus(TIM1_FLAG_CC1))
if(TIM1_GetITStatus(TIM1_FLAG_CC1) != RESET)
{
switch(temp)
{
case 0: ICValue1=TIM1_GetCapture1();
temp=1;
break;
case 1: ICValue2=TIM1_GetCapture1();
temp=2;
break;
default:
TIM1_CCxCmd(TIM1_CHANNEL_1, DISABLE);
TIM1_ITConfig(TIM1_IT_CC1, DISABLE);
temp=3;
break;
}
TIM1_ClearITPendingBit(TIM1_IT_CC1);
TIM1_ClearFlag(TIM1_FLAG_CC1);
}

第六步:
TIM4的中断程序
if(temp==3)
{
temp=0;
if(ICValue2>ICValue1)
{
disvalue=ICValue2-ICValue1;
}
else if(ICValue2<ICValue1)
{
//disvalue=0xffff+ICValue2-ICValue1;
disvalue=20000+ICValue2-ICValue1; //防止计数到末端的时候 重新计数
}
val[i0++] = disvalue;
if(i0>10) i0=0;
display();
TIM1_CCxCmd(TIM1_CHANNEL_1, ENABLE);
TIM1_ITConfig(TIM1_IT_CC1, ENABLE);
}
else
{
display();
}
TIM4_ClearITPendingBit(TIM4_IT_UPDATE);


使用特权

评论回复
地板
Soraka| | 2016-1-6 20:23 | 只看该作者
21ic的下载站里有STM8S例程集合

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝