我有一个基本的AVR设置,其中运行ATmega328P和一个FreeRTOS内核。我想在30kHz-60kHz之间将高频率的GPIO引脚设置为输出。 GPIO切换的频率由其他RTOS任务和功能连续决定,该任务和功能介于30kHz-60kHz之间。
我想问一下如何在不断变化的高频率下切换GPIO。我正在使用Atmel Studio 7.请帮助。
答案 0 :(得分:1)
如果你打算改变频率,那就说每2个脉冲,那么软件可能是一个解决方案。如果频率将保持几十或十几个脉冲,PWM肯定是最好的方法。
当然,您可以随时随地管理PWM频率和周期。您将需要使用datasheet的PWM部分读取timer / counterX。如果您总是需要50%的占空比,则§15.7.2是最佳配置方式。如果您需要占空比和频率,则适应§15.7.3。
涵盖所有可能的配置将是广泛写在这里,但如果你开始实施和经验问题,你可以提出新的问题。