打印

STM32 怎样快速判断端口电平

[复制链接]
4608|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zyb2002|  楼主 | 2012-7-21 17:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为了在同一相位检测正弦波信号(大约500Khz)的幅度,假设过零比较电路的输出接在PA8口。我需要在 PA8 下降沿开始,定时若干 ns 后开启 AD 转换。程序如下:
     ...............
     DisableAllInterrupt( );                      // 关掉所有中断
     while( GPIOA->IDR & GPIO_Pin_8 ); // 等待下降沿
     for( i = 0; i < DELAY_CONST;i++ );  // 延时若干 ns
     StartAD1( );                                    // 开启 AD 转换
     ..............

担心 while( GPIOA->IDR & GPIO_Pin_8 ) 每次执行时间会不一样。假设用中断,中断响应的误差会比以上指令执行误差小么?还有更优越的方法么?
请不吝指教。
沙发
益友电子| | 2012-7-21 21:04 | 只看该作者
使用上升沿和下降沿的中断,在中断里面计数计算!

使用特权

评论回复
板凳
airwill| | 2012-7-21 22:54 | 只看该作者
还有个更好的办法,用定时器捕捉,由于边沿的时间被保存到定时器的寄存器里了,不用担心中断延迟对测量精度的影响了。

使用特权

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

本版积分规则

38

主题

71

帖子

1

粉丝