more & more memory optimizations

This commit is contained in:
sinseman
2015-02-21 14:12:27 +01:00
parent 80f2c0936a
commit 65ae2048c5
4 changed files with 79 additions and 48 deletions

View File

@@ -119,11 +119,11 @@ float alt;
float tim;
#define memoryBase 32
// Configuration structure (137 bits)
// Configuration structure (89 bits)
struct Conf
{
float vario_climb_rate_start; //minimum climb beeping value(ex. start climbing beeping at 0.4m/s)
float vario_sink_rate_start; //maximum sink beeping value (ex. start sink beep at -1.1m/s)
int8_t vario_climb_rate_start; //minimum climb beeping value(ex. start climbing beeping at 0.4m/s)
int8_t vario_sink_rate_start; //maximum sink beeping value (ex. start sink beep at -1.1m/s)
int currentAltitude;
uint8_t light_cpt;
uint8_t contrast_default;
@@ -131,11 +131,21 @@ struct Conf
float p0;
uint8_t stat_index;
} conf = {
0.3, -1.1 , 0, 0, 50, true, 1040.00, 0
3, -11 , 0, 0, 50, true, 1040.00, 0
};
float getVarioClimbRateStart()
{
return (float)conf.vario_climb_rate_start/10;
}
float getVarioSinkRateStart()
{
return (float)conf.vario_sink_rate_start/10;
}
// Statistic structure (128 bits)
#define NB_STATS 6
#define NB_STATS 7
struct Stat
{
uint32_t chrono_start;
@@ -202,7 +212,7 @@ void resetAllStats()
void playConfirmMelody()
{
if (true == conf.volume){
toneAC(700, 300);
toneAC(700, 500);
}
}
@@ -481,14 +491,14 @@ void renderMenu(MenuItem newMenuItem = menu.getCurrent(), uint8_t dir = 2)
case MENU_MONTEE:
{
conf.vario_climb_rate_start = updateConfItem(conf.vario_climb_rate_start, dir, 0.1);
conf.vario_climb_rate_start = updateConfItem(conf.vario_climb_rate_start, dir, 1);
if (conf.vario_climb_rate_start < 0.1) {
if (conf.vario_climb_rate_start < 1) {
conf.vario_climb_rate_start = 0;
display.print(F("Off"));
}
else {
display.print(conf.vario_climb_rate_start);
display.print(getVarioClimbRateStart(), 1);
display.setTextSize(1);
display.print(F("m/s"));
}
@@ -497,14 +507,14 @@ void renderMenu(MenuItem newMenuItem = menu.getCurrent(), uint8_t dir = 2)
case MENU_DESCENTE:
{
conf.vario_sink_rate_start = updateConfItem(conf.vario_sink_rate_start, dir, 0.1);
conf.vario_sink_rate_start = updateConfItem(conf.vario_sink_rate_start, dir, 1);
if (conf.vario_sink_rate_start >= 0) {
conf.vario_sink_rate_start = 0;
display.print(F("Off"));
}
else {
display.print(conf.vario_sink_rate_start);
display.print(getVarioSinkRateStart(), 1);
display.setTextSize(1);
display.print(F("m/s"));
}
@@ -717,7 +727,6 @@ void menuSetup()
*/
m_vario.addAfter(m_stats);
m_stats.addAfter(m_options);
m_stats.addRight(m_stat);
m_stat.addBefore(m_retour2);
@@ -834,8 +843,12 @@ void makeBeeps()
noSound = (timeNoPauseBeep <= 30)? false: !noSound;
if (false == noSound){
float varioClimbRateStart = getVarioClimbRateStart();
float varioSinkRateStart = getVarioSinkRateStart();
//beep even if vario has negative value but vario is climbing
float variation = (vario < conf.vario_climb_rate_start && vario_diff >= conf.vario_climb_rate_start && conf.vario_climb_rate_start != 0)? vario_diff: vario;
float variation = (vario < varioClimbRateStart && vario_diff >= varioClimbRateStart && varioClimbRateStart != 0)? vario_diff: vario;
if (timeNoPauseBeep <= 30){
timeNoPauseBeep++;
@@ -845,7 +858,7 @@ void makeBeeps()
beepLatency = getBeepLatency(variation);
}
if ((vario > conf.vario_climb_rate_start && conf.vario_climb_rate_start != 0) || (vario < conf.vario_sink_rate_start && conf.vario_sink_rate_start != 0)) {
if ((vario > varioClimbRateStart && varioClimbRateStart != 0) || (vario < varioSinkRateStart && varioSinkRateStart != 0)) {
//when climbing make faster and shorter beeps
//toneAC(getBeepFrequency(variation), 10, beepLatency, true);
toneAC(getBeepFrequency(variation), beepLatency);
@@ -912,7 +925,7 @@ void loop()
vario = vario + 0.01;
if (vario > 4)
vario = 0;
*/
*/
// Update stats if chrono is running
if (stat.chrono_start != 0) {
@@ -1008,8 +1021,7 @@ void loop()
}
//correction beep latency
makeBeeps();
}
}
//Serial.println((tempo - micros()));
}