Arduino编程关键技术解析
1. Arduino编译优化
在使用Arduino进行开发时,如果确定代码中不需要使用 analogRead()
函数,并且设备使用电池供电,那么可以通过一些操作来降低功耗。
1.1 禁用ADC
在 setup()
函数中添加以下代码可以禁用ADC:
#include <wiring_private.h>
...
cbi(ADCSRA, ADEN);
如果还想进一步节省功耗,停止向ADC时钟供电,可以添加以下代码:
sbi(PRR, PRADC);
也可以使用AVRLib的功能来实现相同的效果,代码如下:
#include <avr/power.h>
...
void setup()
{
...
power_adc_disable();
}
这种方式的代码更具可读性和可理解性。
1.2 禁用USART
init()
函数的最后一项任务是禁用通用同步/异步收发器(USART)。引导加载程序会将Arduino的D0和D1引脚连接到USART,为了在代码中重新使用这两个引脚进行 digitalRead()
和/或