func (werte->struct) func(werte lesen geht nicht)
Verfasst: Di Jun 16, 2009 12:39 am
Guten Abend,
ich brauch mal eure Hilfe.
Ich habe ein Struktur definiert, die enums und Variablen enthält.
Der Funktion mstp_create_frame ( mstp_port ) wird ein Pointer auf die Struktur übergegeben.
Mit Hilfe des Pointers *mstp_port werden die Werte in der Struktur deklariert.
void MSTP_Receive_Frame_State_Machhine( struct mstp_port_struct *mstp_port )
Mit Hilfe von dieser Funktion wollte ich auf die Werte in struct zugriefen, doch da stehen nicht die von mir zugewisenen Werte.
Woran kann das liegen???
Vielen Dank im Voraus.
ich brauch mal eure Hilfe.
Ich habe ein Struktur definiert, die enums und Variablen enthält.
Der Funktion mstp_create_frame ( mstp_port ) wird ein Pointer auf die Struktur übergegeben.
Mit Hilfe des Pointers *mstp_port werden die Werte in der Struktur deklariert.
void MSTP_Receive_Frame_State_Machhine( struct mstp_port_struct *mstp_port )
Mit Hilfe von dieser Funktion wollte ich auf die Werte in struct zugriefen, doch da stehen nicht die von mir zugewisenen Werte.
Woran kann das liegen???
Vielen Dank im Voraus.
Code: Alles auswählen
typedef enum
{
MSTP_RECEIVE_FRAME_STATE_IDLE = 0,
MSTP_RECEIVE_STATE_FRAME_PREAMBLE = 1,
MSTP_RECEIVE_STATE_FRAME_HEADER = 2,
MSTP_RECEIVE_STATE_FRAME_HEADER_CRC = 3,
MSTP_RECEIVE_STATE_FRAME_DATA = 4,
MSTP_RECEIVE_STATE_FRAME_DATA_CRC = 5
} MSTP_RECEIVE_FRAME_STATE;
struct mstp_port_struct
{
MSTP_RECEIVE_FRAME_STATE receive_frame_state;
unsigned char preamble1;
unsigned char preamble2;
unsigned char frame_type1;
unsigned char destination;
unsigned char source;
};
struct mstp_port_struct *mstp_port;
int main (void)
{
mstp_create_frame ( mstp_port );
MSTP_Receive_Frame_State_Machhine( mstp_port );
}
void mstp_create_frame ( struct mstp_port_struct *mstp_port )
{
int i;
struct mstp_port_struct test;
mstp_port = &test;
memset(mstp_port, 0, sizeof(struct mstp_port_struct));
mstp_port->receive_frame_state = MSTP_RECEIVE_STATE_FRAME_HEADER;
mstp_port->preamble1 = 55;
mstp_port->preamble2 = 255;
mstp_port->frame_type1 = 0;
mstp_port->destination = 80;
mstp_port->source = 81;
}
void MSTP_Receive_Frame_State_Machhine( struct mstp_port_struct *mstp_port )
{
if (mstp_port->receive_frame_state == MSTP_RECEIVE_STATE_FRAME_HEADER ) //mstp->receive_frame_state steht was falsches. Da sollte eigentlich 2 stehen (MSTP_RECEIVE_STATE_FRAME_HEADER = 2)
{
int i;
i=5;
}
}