🚩优化代码很重要的两个思路:①SRAM→Flash②独享SRAM→共享SRAM |
首先来看一组Arduino内存占用情况
的对比:
优化之前
优化之后
明显发生了很大的改变,而实现的功能却是一模一样的。
本次程序例程来自太极创客官网,此平台的Arduino教程深入浅出,对于想学习Arduino的同学,首推太极创客团队。(๑•̀ㅂ•́)و✧
以下便是今天练习的内存优化
程序:
🎯优化前代码
/*
* 基本功能介绍:
* 小夜灯配备人体红外感应传感器以及光敏电阻实现照明自动化
* 点亮和熄灭时产生渐明渐暗效果
* 在点亮过程中产生呼吸灯的效果
* 用户可以通过变量 maxRVal、maxGVal、maxBVal 自定义小夜灯点亮的颜色
* 用户可以通过变量 breathStep、breathStepDelay 自定义小夜灯渐明渐暗的速度
*
* 基本电路连接说明:
* 共阴极RGB-LED引脚R 连接 Arduino控制器引脚6
* 共阴极RGB-LED引脚G 连接 Arduino控制器引脚5
* 共阴极RGB-LED引脚B 连接 Arduino控制器引脚3
* 红外人体感应模块信号输出引脚 连接 Arduino控制器引脚8
* 光敏电阻分压电路信号输出引脚 连接 Arduino控制器引脚A0
*/
//定义引脚
#define rLedPin 6
#define gLedPin 5
#define bLedPin 3
#define irSensorPin 8
#define lightSensorPin A0
//设置参数
int ledR=0;
int ledG=0;
int ledB=0;
bool irReading;
int lightReading;
int maxRVal=125;
int maxGVal=200;
int maxBVal=33;
int minRVal=39;
int minGVal=65;
int minBVal=11;
int breathStep=1;
int breathStepDelay=18;
bool breathOnOff=0;
bool onOffState;
//debug模式是否开启
//bool debugOn=0;
/*
* Arduino在控制LED亮度变化时,对于时间的要求很苛刻。
* 每一次Arduino通过串口监视器输出信息时都会让Arduino短暂停顿
* 这些短暂停顿会影响小夜灯的渐明渐暗效果