0

Background:

My goal is to use sdFat library, more precisely AnalogBinLogger example.

I want to log data from changing analog pins for example, I want to log from pin 0 to pin 3 for 5 minutes and then from pin 4 to pin 6 for another 5 mins and then from pin 7 to pin 9 for another 5 mins. that is going to be continuously which means I am going to get rid of the part where you have to enter "r" to start logging.

Regarding the time, I managed to figure it out, I am just using the value of the variable count, if my sampling rate is 1000 samples/sec for example then 5 minutes will be 1000*60*5 and the change will be done in this line:

if (Serial.available()) {
 // Stop ISR calls.
 adcStop();

to

if (count >1000*60*5) {
 // Stop ISR calls.
 adcStop();

and this worked fine.

My problem is with the changing pins:

const uint8_t PIN_LIST[] = {1};

I changed this line to

uint8_t PIN_LIST[3] = {};

First I removed the word const, because it's not going to be constant anymore, and I just declared an empty array, and second I am changing the pins in the loop.

Here is the loop after I got rid of doing the serial input:

void loop(void) {
int i;
for (i=0;i<=12;i+3)
{ 
 PIN_LIST[] = {i,i+1,i+2};
 logData();
 Serial.println("done");
 }}

The problem is I get this error :

  1. AnalogBinLogger.ino: In function 'void loop()':
  2. AnalogBinLogger:808: error: expected primary-expression before ']' token
  3. AnalogBinLogger:808: error: expected primary-expression before '{' token
  4. AnalogBinLogger:808: error: expected `;' before '{' token

The line 808 is:

PIN_LIST[] = {i,i+1,i+2};

So this is the only error, any help please?

The code is so long (800+ lines) if this information is not enough and you need me to explain a part then just tell me.

Greenonline
3,1527 gold badges36 silver badges48 bronze badges
asked May 25, 2015 at 3:55

1 Answer 1

1

in case someone has the same problem it seems like after you initialize an array this way

uint8_t PIN_LIST[3] = {};

you won't be able to assign all the values at once:

PIN_LIST[] = {i,i+1,i+2};
instead you assign each individual value

  • PIN_LIST[0] = i;
  • PIN_LIST[1] = i+1;
  • PIN_LIST[2] = i+2;

and now it worked : )

answered May 25, 2015 at 4:23

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.