GPIO中断上升沿

4个帖子/ 0新
最后一篇
MHARTHIKOTE.
离线
最后一次露面:5年9个月前
加入:2014-07-20 06:00
GPIO中断上升沿

你好,

我想在GPIO引脚上计算输入频率(输入Fre 50-150kHz)
我计划在上升沿使用GPIO中断,并计算Systick计时器以获得频率值。
但是,我无法从Systick计时器获得正确的价值,我不确定我是否正确地设置了GPIO中断

有人可以帮助我调试这个问题

一些乐趣()
{

//开始Systick Timer
systick_usec_units(false);
systick_stop();
systick_start(90000,false);
//启用GPIO.
gpio_resetirq(gpio1_irqn);
gpio_enableirq(gpio_port_1,gpio_pin_1,gpio1_irqn,false,true,0);//想要触发上升沿信号
gpio_registercallback(gpio1_irqn,app_btn_callback();
......
}

void app_btn_callback(void)
{
if(firstedge == 0)
{
Firstedge = 1;
freqcount = systick-> val;
}
别的
{
freqcount = freqcount-systick-> val;
systick_stop();
nvic_disableirq(gpio1_irqn);
}

nvic_clearpendingirq(gpio1_irqn);
}

设备:
mt_dialog.
离线
最后一次露面:1个月3周前
职员
加入:2015-06-08 11:34
嗨mharthikote,

嗨mharthikote,

您是什么意思错误值,您期待的值是什么?

您是否考虑调查GPIO并启动Systick而不是等待中断发生,看看会发生什么?

谢谢mt_dialog.

MHARTHIKOTE.
离线
最后一次露面:5年9个月前
加入:2014-07-20 06:00
我从中获得错误的值

我从Systick计时器获取不正确的值,用于输入频率大于100khz ....我可以正确地设置GPIO中断吗?

mt_dialog.
离线
最后一次露面:1个月3周前
职员
加入:2015-06-08 11:34
嗨mharthikote.

嗨mharthikote.

似乎中断被正确设置。

我认为虽然无法正常工作的原因是您使用中断的事实,请尝试投票引脚并查看会发生什么。

谢谢mt_dialog.