No hombre no, no me referia a enviar toda la estructura ( spi_write(estructura);) no conozco el bus spi, pero imagino que no puedas enviar mas de 8 bits por el bus (por eso no te deja el compilador), me refería a que cuando tienes varios tipos de variables a lo largo del programa, se suelen agrupar en estructuras para tratar los datos de manera conjunta (es algo habitual). No se como es tu programa, pero para lo que quieres hacer quizas puedas crear un array de estructuras o tambien si quieres tratar los datos de manera dinamica crear un array de punteros (auqnue no se que tal se comportaria el compilador con esta ultima opcion, nunca lo he probado):
Una posible solucion con un ARRAY DE ESTRUCTURAS
//////////////////////////////////
Codigo:
struct miestructura
{
int temperatura;
int puerto_a;
char puerto_b;
}tipos_de_datos[N_DATOS_MAX];
///////////////////////////////////
for(j=0;j<N_DATOS_MAX;j++)
{
SPI_WRITE(tipos_de_datos[j].temperatura); //envio los N_DATOS_MAX de temperatura por SPI
SPI_WRITE(tipos_de_datos[j].puerto_a); //envio los N_DATOS_MAX del port_a
SPI_WRITE(tipos_de_datos[j].puerto_b);
}
//////////////////////////////////
Con esto tendrías que ir almacenando las variables y cada X tiempo transmitirlas por el bus SPI mediante el "for". También sería una buena opción crearte una funcion para enviar los datos y llamarla en el programa principal cuando fuera conveniente.
De todos modos, el envio de datos siempre te lo va a limitar el bus, tendras que respetar lo que te marquen las especificaciones, yo por mi parte las desconozco.
No se si es esto lo que preguntabas... no se... en fin... espero haberte ayudado.
Un saludo.
y así ???
Codigo:
struct miestructura
{
int temperatura;
int puerto_a;
char puerto_b;
}tipos_de_datos;
///////////////////////////////////
for(j=0;j<3;j++) SPI_WRITE(tipos_de_datos[j]);