AVR atmega 上的多个程序

Multiple programs on AVR atmega

我想让我的 Atmega 机器人运行多种模式(巡线、避障、PC 直接引导)如何在闪存上加载这些分离的程序以及如何在重新启动时 select 其中之一机器人?

最简单的方法是制作一个具有所有模式的所有功能的大程序。启动时,在 main() 中检查是否按下了某些按钮,然后选择您要操作的模式。然后从那时起只使用该模式的功能和控制机制。其余的代码只是放在那里未使用,但无论如何在任何其他方案中它都会。

没有一种简单的方法可以将代码分解成几个不同的完整程序。例如,向量 table 固定在它所在的位置。您必须让中断处理程序检查哪种模式处于活动状态,然后为该模式调用适当的函数。