TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Maria33 en 26 de Marzo de 2009, 11:37:10
-
Hola!!
Estoy realizando un programa para el pic18f97j60 con el compilador c18 y mi duda es la siguiente:
Tengo que crearme las dos siguientes estructuras:
typedef struct _AT_GET_ID_PACKET
{
BYTE length;
BYTE type;
UINT16 ID;
} AT_GET_ID_PACKET;
typedef struct _AT_LISTEN_RX_CHAN_PACKET
{
BYTE length;
BYTE type;
BYTE active;
BYTE channel;
} AT_LISTEN_RX_CHAN_PACKET
y posteriormente las enviaré por RS232. Me pregunto si habría alguna manera de crear un método al que se le pase como parámetro una de estas estructuras o tendría que crearme dos métodos distintos uno al que se le pase una estructura y otro al que se le pase la otra.¿habria alguna manera de crear un tipo de datos genérico?
Gracias
-
typedef struct _AT_GET_ID_PACKET
{
BYTE length;
BYTE type;
UINT16 ID;
} AT_GET_ID_PACKET;
pero ahi todavia no creas una estructura sino estas definiendo un tipo de ellas, y que debes de asignar luego a un registro. y si intentas esto:
struct _paquete{
union
{
struct
{
BYTE get_length;
BYTE get_type;
UINT16 ID;
};
struct
{
BYTE rx_length;
BYTE rx_type;
BYTE active;
BYTE channel;
};
};
}paquete;
saludos :-/
-
Hola,
posteriormente las enviaré por RS232. Me pregunto si habría alguna manera de crear un método al que se le pase como parámetro una de estas estructuras o tendría que crearme dos métodos distintos uno al que se le pase una estructura y otro al que se le pase la otra.¿habria alguna manera de crear un tipo de datos genérico?
Yo declararia un solo metodo para enviar las dos estructuras, algo asi
void Send2RS232( void *Buffer, word Lenght )
{
....
}
/* Y se usarian asi */
...
AT_GET_ID_PACKET Struct1;
AT_LISTEN_RX_CHAN_PACKET Struct2;
Send2RS232( Struct1, sizeof( AT_GET_ID_PACKET ));
Send2RS232( Struct2 sizeof( AT_LISTEN_RX_CHAN_PACKET));
Saludos !
-
Muchas gracias!! Al final lo he resuelto usando
typedef union _PACKET
{
struct packet1
{
}
struct packet2
{
}
}