新手上路
- 积分
- 40
- 金钱
- 40
- 注册时间
- 2016-9-22
- 在线时间
- 12 小时
|

楼主 |
发表于 2016-11-4 11:36:15
|
显示全部楼层
延迟加在了子函数里,在主函数中调用这个子函数
void TIM5CH1_Cap_PWM(void)
{
static u8 temp1_Flag=0;
u32 temp1=0;
if(TIM5CH1_CAPTURE_STA&0X80)//成功捕获到了一次上升沿
{
TIM_ITConfig(TIM5,TIM_IT_CC1,DISABLE);
//temp1=TIM5CH1_CAPTURE_STA&0X3F;
//temp1*=65536;//溢出时间总和
//temp1+=TIM5CH1_CAPTURE_VAL;//得到总的高电平时间
temp1=TIM5CH1_CAPTURE_VAL;//得到总的高电平时间
delay_ms(100); //延迟
printf("Channel 1:%d us\r\n",temp1);//打印总的高点平时间
TIM5CH1_CAPTURE_STA=0;//开启下一次捕获
TIM_ITConfig(TIM5,TIM_IT_CC1,ENABLE);
}
}
int main(void)
{
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
RS485_Init(9600); //485口初始化为9600
LED_Init(); //LED端口初始化
KEY_Init(); //初始化与按键连接的硬件接口
TIM5_Cap_Init(0XFFFF,72-1); //以1Mhz的频率计数
while(1)
{
TIM5CH1_Cap_PWM(); //执行捕获处理程序
}
}
|
|