Aanzetten laatste waarde array ruïneert functionaliteit, please help

Beste lezer,

Afgelopen weken heb ik een "deep dive" in Arduino en Nextion gedaan. Met mijn VB/VBA achtergrond kom ik een heel eind, alhoewel C of C++ niet echt mijn ding is :o
Desondanks heb ik aardig voortgang geboekt, alhoewel ik nu tegen een heel weerbarstig dingetje aanloop.

Onderstaande code werkt "uitstekend" totdat ik de comment regel activeer.

int airpressureRAW[3][maxairpressureReadings];
const int maxairpressureReadings = 10;
airpressureRAW[0][intairpressureReadings] = analogOne.getValue();
memset(buffer, 0, sizeof(buffer));
itoa(analogOne.getValue(), buffer, 10);
tavrLV.setText(buffer);
airpressureRAW[1][intairpressureReadings] = analogTwo.getValue();
memset(buffer, 0, sizeof(buffer));
itoa(analogTwo.getValue(), buffer, 10);
tavrLA.setText(buffer);
airpressureRAW[2][intairpressureReadings] = analogThree.getValue();
memset(buffer, 0, sizeof(buffer));
itoa(analogThree.getValue(), buffer, 10);
tavrRV.setText(buffer);
// airpressureRAW[3][intairpressureReadings] = analogFour.getValue();
memset(buffer, 0, sizeof(buffer));
itoa(analogFour.getValue(), buffer, 10);
tavrRA.setText(buffer);

Code interpretatie:

  • Met de code analogxxx.getValue(); haal ik een analoge waarde op waarbij de noise is weggehaald
  • De xxxxx.setText(buffer); functie is in gebruik een Nextion scherm te vullen.
  • De variabele intairpressureReadings loopt mee om aan de hand van millis de array te vullen. Die array wordt naderhand gebruikt om het gemiddelde over langer periode te kunnen terugrekenen.

Het optellen van de intairpressureReadings:
intairpressureReadings = intairpressureReadings + 1;
if (intairpressureReadings >= maxairpressureReadings) {
intairpressureReadings = 0; //Dus na 10 keer lezen de array vanaf 0 weer vullen
}

Activatie van die comment regel heeft op een of andere manier invloed op de waarde van intairpressureReadings. Zodra ik die ook aanzet springt die intairpressureReadings (lijkt wel) naar de waarde van de analogFour.getValue().

Dit is al dagen lang een issue wat ik niet weet te vinden.
Het zou er fijn zijn als iemand me een zetje in de juiste richting kan geven.

Dank alvast,

Tsjompie

Welke output verwacht je van het volgende stukje code?

[color=#00979c]int[/color] [color=#000000]myArray[/color][color=#000000][[/color][color=#000000]3[/color][color=#000000]][/color] [color=#434f54]=[/color] [color=#000000]{[/color][color=#000000]1[/color][color=#434f54],[/color] [color=#000000]2[/color][color=#434f54],[/color] [color=#000000]3[/color][color=#000000]}[/color][color=#000000];[/color]
[b][color=#d35400]Serial[/color][/b][color=#434f54].[/color][color=#d35400]println[/color][color=#000000]([/color][color=#000000]myArray[/color][color=#000000][[/color][color=#000000]0[/color][color=#000000]][/color][color=#000000])[/color][color=#000000];[/color]
[b][color=#d35400]Serial[/color][/b][color=#434f54].[/color][color=#d35400]println[/color][color=#000000]([/color][color=#000000]myArray[/color][color=#000000][[/color][color=#000000]1[/color][color=#000000]][/color][color=#000000])[/color][color=#000000];[/color]
[b][color=#d35400]Serial[/color][/b][color=#434f54].[/color][color=#d35400]println[/color][color=#000000]([/color][color=#000000]myArray[/color][color=#000000][[/color][color=#000000]2[/color][color=#000000]][/color][color=#000000])[/color][color=#000000];[/color]
[b][color=#d35400]Serial[/color][/b][color=#434f54].[/color][color=#d35400]println[/color][color=#000000]([/color][color=#000000]myArray[/color][color=#000000][[/color][color=#000000]3[/color][color=#000000]][/color][color=#000000])[/color][color=#000000];[/color]

Hoe groot is je array, en wat is de minimale en de maximale index? Hoeveel elementen probeer je erin te steken? Met welke indices?

Pieter

@Tsjompie

code tags hebben [ ] haken, dus bijna perfect !

Logisch dat hij fout gaat. Google eens op arrays en c en je vindt het

Hebben!!!

Mijn dank voor de juiste richting.
Ik ga het corrigeren.

Er blijkt een verschil in de Arrays tussen VB(A) en C(++).

Nooit geweten; was me ook nooit opgevallen in alle voorbeelden die ik heb bekeken (en dat zijn er nogal wat :o ).

Mijn eerste kennismaking met Arduino is geweldig.
In het bijzonder de community eromheen heeft mij positief verrast. De hoeveelheid leesvoer in het begin is overweldigend, het resultaat straks nog beter :smiley:

Nogmaals mijn dank voor dit zetje,

Tsjompie

Tsjompie:
Er blijkt een verschil in de Arrays tussen VB(A) en C(++).

Nou dat valt nog wel mee hoor. Bij Basic (back in the seventies) alsmede de late VB en VBA is de default index base dat hij altijd begint bij 0. Je moet expliciet in een module opgeven

option base 1

om de eerste entry op index 1 te krijgen.