常驻嘉宾
- 积分
- 4049
- 威望
- 1562
- 贡献
- 1013
- 兑换币
- 989
- 注册时间
- 2012-9-23
- 在线时间
- 737 小时
|
我的思路:让c1口捕捉到b2口发出的上升沿或者下降沿后,点亮小灯
但是为毛小灯一直亮着啊···delay函数我也特地增大周期了··
#include "common.h"
#include "HAL_FTM.h"
#include "HAL_PIT.h"
#include "uart.h"
#include "HAL_GPIO.h"
extern int periph_clk_khz;
extern uint8_t LPLD_FTM0_Divider;
uint32_t Frq1;
void ftm1_isr(void);
void init_gpio(void);
void delay(void);
/********************************************************************/
void main (void)
{
LPLD_FTM0_InputCapture_Init(0, 3, 7, ftm1_isr);
while(1)
{
LPLD_GPIO_Init(PTB,2, DIR_OUTPUT, OUTPUT_H, IRQC_DIS);
delay();
LPLD_GPIO_Init(PTB,2, DIR_OUTPUT, OUTPUT_L, IRQC_DIS);
delay();
}
}
/********************************************************************/
void ftm1_isr(void)
{
//输入捕获边缘检测中断
if(FTM0_C0SC & FTM_CnSC_CHF_MASK)
{
//用户自定义代码 开始
LPLD_GPIO_Init(PTB, 11, DIR_OUTPUT, OUTPUT_H, IRQC_DIS);
LPLD_GPIO_Init(PTB, 17, DIR_OUTPUT, OUTPUT_L, IRQC_DIS);
//用户自定义代码 结束
//清空FTM0 COUNTER
FTM0_CNT = 0;
//清除输入中断标志
FTM0_C0SC &=(~FTM_CnSC_CHF_MASK);
}
//输入捕获计数器溢出中断
else if(FTM0_SC & FTM_SC_TOF_MASK)
{
//用户自定义代码 开始
//用户自定义代码 结束
//清除计数溢出中断标志
FTM0_SC &=(~FTM_SC_TOF_MASK);
}
}
void delay()
{
unsigned int i, n;
for(i=0;i<40000;i++)
{
for(n=0;n<500;n++)
{
asm("nop");
}
}
}
|
|