hier befüllst du in deinen unions die Double-Werte. GutCode:temperatur.temp=1623; x.mag_x=1672122; y.mag_y=1672312; z.mag_z=1672312;
In der timer-routine willst du sie schicken. in nehm als beispiel den ersten transmit-code, die anderen sind eigentlich genauso
Da aber der Compiler bezahlt ist (nehm ich an), soll er was arbeiten. Das Gleiche, aber kompakter:Code:void USART_Transmit() { while(!(UCSRA.5)); // warten, bis Buffer leer temp1=temperatur.tempc[0]; // das erste byte des double UDR=temp1; // weg damit while(!(UCSRA.5)); // wieder warten, bis Buffer leer temp2=temperatur.tempc[1]; // das 2. byte des double UDR=temp2; // weg damit while(!(UCSRA.5)); // wieder warten, bis Buffer leer temp3=temperatur.tempc[2]; // das 3. byte des double UDR=temp3; // weg damit while(!(UCSRA.5)); // wieder warten, bis Buffer leer temp4=temperatur.tempc[3]; // das 4. byte des double UDR=temp4; // weg damit }
Verständlich ?Code:void USART_Transmit() { unsigned char i; for (i=0;i<4;i++) { while(!(UCSRA.5)); UDR=temperatur.tempc[i]; } }







Zitieren

Lesezeichen