PIC18F97J60 MAC-Adresse umwandeln

OP #6161902
Lesenswert?

Hallo Zusammen,

ich habe gerade meinen TCPIP Stack des PIC LITE modifiziert.

Zu Debug Zwecken würde ich gerne die MAC-Adresse über den USART 
auslesen.

Der TCPIP Stack verwendet folgenden Quelltext:
1
#define MAC_ADDRESS {0x00,0x04,0xa3,0x00,0x16,0x06}

Nun würde ich diese gerne wie gewohnt in einen String umwandeln. Wenn 
ich die MAC händisch eingebe funktioniert die Umwandlung. Allerdings ich 
möchte nicht an zwei oder drei Stellen die Einstellungen verwalten. 
Daher die Umwandlung. soweit wäre ich..
1
void MAC_to_String(char str_MAC[]) 
2
{
3
    #define MAC_ADDRESS {0x00,0x04,0xa3,0x00,0x16,0x06}
4
  
5
    //Umwandlung for next oder so..
6
    
7
    sprintf(str_MAC, "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", 0x00, 0x04, 0xa3, 0x00, 0x16, 0x06); 
8
   
9
}

Weiß jemand wie ich aus der define das hinkriege? Im Netz habe ich nur 
wenig brauchbares gefunden.

Danke und Gruß
Ingo
#6161912
Lesenswert?

#include <stdio.h>

#define MAC_ADDRESS {0x00,0x04,0xa3,0x00,0x16,0x06}

void MAC_to_String(char str_MAC[])
{
        unsigned char mac[] = MAC_ADDRESS;
        sprintf(str_MAC, "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", mac[0], 
mac[1], mac[2], mac[3], mac[4], mac[5]);
}

int main(void)
{
        char str_MAC[3*6];
        MAC_to_String(str_MAC);
        printf("%s\n", str_MAC);
}
(Firma: @home) #6161956
Lesenswert?

Ingo S. schrieb:
> Super so einfach kann die Lösung sein!

einfach? ... noch einfacher oder richtig einfach!

1
#define SET_MAC_ADDR 0x00,0x04,0xa3,0x00,0x16,0x06
2
#define MAC_ADDRESS {SET_MAC_ADDR}
3

4
void MAC_to_String(const char str_MAC[]) {  
5
    //Umwandlung for next oder so..    
6
    sprintf(str_MAC, "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", SET_MAC_ADDR);    
7
}


mt

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren