First if the ascii representation for Hex A is written as a little "a" or as a caps "A", the conversion will be different.
Yes. But, it is easy enough to manage that.
char MACstring[] = "ab,cd,ef,AB,12,CD";
byte MACvalues[6];
byte index = 0;
byte val = 0;
byte num;
for(byte i=0; i<strlen(MACString); i++)
{
char ltr = MACString[i];
if(ltr >= 'a' && ltr <= 'f')
num = ltr - 'a' + 10;
else if(ltr >= 'A' && ltr <= 'F')
num = ltr - 'A' + 10;
else if((ltr >= '0' && ltr <= '9')
num = ltr - '0';
else if(ltr == ',')
{
val *= 16;
val += num;
MACvalues[index++] = val;
val = 0;
}
}
At the end of this loop, MACvalues should contain 0xab, 0xcd, 0xef, 0xAB, 0x12, and 0xCD. You can then store the 6 bytes in EEPROM for later retrieval.