Atmega328 中输出比较引脚 A 和 B 的独立模式
Independent modes of Output Compare Pins A and B in Atmega328
我在看Atmega328。 Atmel 在定时器部分提供了很多功能。但我观察到输出比较 A 和输出比较 B 的操作模式取决于 WGM 位,不能对两者进行不同的设置。例如:我不能在快速 PWM 模式下 select OCA 引脚和正常 mode/CTC 模式下的 OCB。要么两者都必须处于正常模式,要么都处于快速 PWM 或其他模式。
谁能证实这一点?可能是 atmel 可以添加一项功能,使 OCA 和 OCB 都以独立模式运行。
由于OCxA和OCxB使用同一个计数器,不能同时用于不同的计数模式。一个单一的值不能同时从零重复计数到顶部,同时到顶部再向下计数到零,或者计数到特定的独立值(CTC)。它没有任何意义。
但是使用 TXCCRxA 中的 COMxxx 位,您可以将比较匹配单元配置为不连接到输出,因此,就像在 "Normal mode" 中一样使用。
当 WGM 位设置为 111 时,您可以在混合 PWM/CTC 模式下使用定时器:定时器将计数到 OCRA 值,而 OCRB(范围 0...OCRA)将用于生成 PWM输出。
在 Timer1 中,您可以将 WGM 位设置为 1110,以启用 CTC 至 ICR1 寄存器的值,同时两个输出都可用于生成 PWM 波形,您可以断开 COM1xx 位中的任何 PWM 输出,并将其用作"normal",产生中断请求,没有值输出到OC1x引脚。
我在看Atmega328。 Atmel 在定时器部分提供了很多功能。但我观察到输出比较 A 和输出比较 B 的操作模式取决于 WGM 位,不能对两者进行不同的设置。例如:我不能在快速 PWM 模式下 select OCA 引脚和正常 mode/CTC 模式下的 OCB。要么两者都必须处于正常模式,要么都处于快速 PWM 或其他模式。 谁能证实这一点?可能是 atmel 可以添加一项功能,使 OCA 和 OCB 都以独立模式运行。
由于OCxA和OCxB使用同一个计数器,不能同时用于不同的计数模式。一个单一的值不能同时从零重复计数到顶部,同时到顶部再向下计数到零,或者计数到特定的独立值(CTC)。它没有任何意义。 但是使用 TXCCRxA 中的 COMxxx 位,您可以将比较匹配单元配置为不连接到输出,因此,就像在 "Normal mode" 中一样使用。
当 WGM 位设置为 111 时,您可以在混合 PWM/CTC 模式下使用定时器:定时器将计数到 OCRA 值,而 OCRB(范围 0...OCRA)将用于生成 PWM输出。
在 Timer1 中,您可以将 WGM 位设置为 1110,以启用 CTC 至 ICR1 寄存器的值,同时两个输出都可用于生成 PWM 波形,您可以断开 COM1xx 位中的任何 PWM 输出,并将其用作"normal",产生中断请求,没有值输出到OC1x引脚。