我来自PC / C#背景,并且我注意到随着我的arduino项目的复杂性变得越来越大,它们变得凌乱并且缺少整体模板。
我的C#项目始终具有非常严格的结构,但是由于C不是OOP,所以我努力应用相同的原理。例如,我想设置一束灯闪烁一定时间然后关闭。在C#中这很容易,但是我所见过的C中的所有解决方案都涉及每次通过循环检查计时器的混乱情况。
所以我的具体问题是,是否有为此建立的C编程实践,如果没有,那么学习这种事情的最佳资源是什么?
答案 0 :(得分:1)
您有两个问题。
1)关于编码结构
如果您要进行裸机设计,则最简单的design pattern是State Machines。有时项目的复杂性太大了,那么您应该研究RTOS。
即使Arduino基于AVR,我也建议您查看ARM CMSIS库代码。对我来说,它处理带有结构的内存映射的方法很有启发性。
2)关于LED闪烁。
如果您正在使用while循环,而这不是您的第一个项目,那么您可能做错了。您应该查看hardware interrupts。