STM32 怎样快速判断端口电平

[复制链接]
5025|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

粉丝
快速回复 在线客服 返回列表 返回顶部