Timer AVR/Arduino:读取定时器切换端口引脚
我已将计时器2配置为CTC模式,并在比较匹配(TCCR2A=0x42,TCCR2B=0x02,OCR2A=0x20)上切换端口引脚,并已将DDR3设置为输出。因此,根据ATmega328P文件(第158-163页)。OC2A(又名PB3)应在每个比较匹配上切换。不幸的是,我无法读取端口B的pin状态。这是预期的吗?我假设,即使将端口配置为输出,我也可以读取设置值。我不知道特定的微控制器,但在某些架构中,您至少需要在更改端口引脚和正在更新的闩锁之间留出一段时间(以便您可以读取更改)Timer AVR/Arduino:读取定时器切换端口引脚,timer,arduino,avr,Timer,Arduino,Avr,我已将计时器2配置为CTC模式,并在比较匹配(TCCR2A=0x42,TCCR2B=0x02,OCR2A=0x20)上切换端口引脚,并已将DDR3设置为输出。因此,根据ATmega328P文件(第158-163页)。OC2A(又名PB3)应在每个比较匹配上切换。不幸的是,我无法读取端口B的pin状态。这是预期的吗?我假设,即使将端口配置为输出,我也可以读取设置值。我不知道特定的微控制器,但在某些架构中,您至少需要在更改端口引脚和正在更新的闩锁之间留出一段时间(以便您可以读取更改) 此外,还有一个
此外,还有一个引脚可以切换的最大频率(比微控制器CPU时钟慢很多倍)。请确保不要超过该频率。有两个问题:
ATmega处理器可以通过定时器直接切换端口引脚。没有必要手动执行此操作,并使用nops等待一点。