Go Down

Topic: Counting hexadecimal / binary (Read 2778 times) previous topic - next topic

ritzdank

for example, if i have an register 0x00 and i want to count up to let´s say 0xff each step in a loop ?? i want to make a function and just pass the variable between the increasing steps (0x01,0x02,....0xdf, 0xef,0xff).


any code out there? don´t even know how to start!

thanks

kg4wsv

like this?

Code: [Select]
int i;
for (i = 0x0; i <=0xff; i++)
{
   fn_whatever(i);
}


-j

ritzdank

yeah! great! well, i was also interested in a solution writtten in C, as i it wouldnt be that easy like the above.


but thanks a lot! it works.

kg4wsv

Quote
i was also interested in a solution writtten in C, as i it wouldnt be that easy like the above.

I don't understand this statement; that is C code.  Of course, being C, it's also C++, "Arduino" code, etc.

C doesn't care if the constants are hex (0xff), octal (075), decimal (6789), or even ASCII ('c').  It doesn't know about binary constants, but somone wrote a macro to handle that, I think included in Arduino 7.

-j

ritzdank

sorry, you are right! but i´ve another question which is hard to find through all references. how can i "eval" within arduino language. for example, i have some registers called reg_level0, reg_level1, reg_level2 ...
i want to set some bytes in a for-statement such as

Code: [Select]
for (i = 0; i < 5; i++) {
function_blablab(reg_level[i], 0x00);
}


of course above example couldnt be compiled as it interprets the square brackets as an array? do you know another syntaa for that?

thanks

kg4wsv

I don't think what you're asking is possible.

My first thought is to put them into an array instead of having several discrete values.

-j

ritzdank

yep, workaround is indeed an array, here´s the code


Code: [Select]
byte reg_level0 = 0x01;
byte reg_level1 = 0x02;
byte reg_level2 = 0x03;
byte reg_level3 = 0x04;
byte reg_level4 = 0x05;
byte reg_level[5] = { reg_level0, reg_level1, reg_level2, reg_level3, reg_level4  };

void test(int i) {
for (i = 0; i < 5; i++)  {
 function_blalba(reg_level[i], 0x40);
 delay(delaytime);

}
}

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy