我希望这是一个与 Atmel AVR 微控制器有关的简单问题。所以我想使用 ATtiny85 的模拟比较器来确定信号是高于还是低于阈值。该信号通常是“浮动的”,并在“活动”时拉向地线(即它是一个活动的低电平 - 集电极开路信号)。如果我通过执行以下操作启用输入引脚(也是比较器输入)上的上拉:
DDRB = 0x00; // DDRB.1 = 0 = input
PORTB = 0xFF; // PORTB.1 = 1 = internal pullup enabled
如果我使用模拟比较器并选择 PORTB.1 作为 AIN1,内部上拉电阻会应用于我的输入信号吗?我希望有人有个人经验来验证这种行为。希望这个问题对于堆栈溢出来说不是太“面向硬件”。谢谢!
编辑 针对以下关于“为什么不对其进行数字处理”的一些评论,这是因为我的“信号”是由传感器(即光学红外传感器)生成的。我不能保证它会拉低“足够硬”以在数字上被解释为零,所以我将使用内部 2.56V 参考作为我的开关阈值。我只是想了解“IR 事件”,所以这对我来说似乎是最简单的方法。
此外,通过使用模拟比较器,我可以使用 ISR“异步”检测事件。授予某些引脚可以在数字边缘调用中断,但不想依赖响应降至 V_IL 以下。