Forum: Mikrocontroller und Digitale Elektronik PIC18F97J60 MAC-Adresse umwandeln


von Ingo S. (schicki)


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

von Michael D. (nospam2000)


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);
}

von Ingo S. (schicki)


Lesenswert?

Super so einfach kann die Lösung sein! Mein Gott das ist mir jetzt fast 
peinlich.

von Apollo M. (Firma: @home) (majortom)


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

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.