Hallo ich mache mit dem PIC eine PWM Messung. Das Ergebnis gebe ich als float Zahl (45.63) über die RS232 Schnittstelle aus. Gleichzeitig wird auch noch Frequenz, High_Cycle und Low_Cycle-Time ausgegeben. Funktioniert auch wunderbar. Allerdings brauch ich das auch auf CAN. Für die CAN Ausgabe kann ich einen 8Byte großen Buffer befüllen. Dieser akzeptiert aber kein FLOAT. D.h. ich möchte einen Floatzahl (345,937ms)in 4 einzelne Bytes zerlegen in buffer[0]...buffer[3] schreiben und über die CAN-Schnittstelle ausgeben. Zum einlesen habe ich eine Datenbasis, die die 4 Bytes als Float interpretieren kann. Aber wie wandel ich die Floatzahl in int um, bzw. wie kann ich float (Komma)zahlen über CAN ausgeben? Hat da jemand ein Bsp oder eine Funktion oder eine Idee? Danke
union test {
unsigned char data_byte[4];
float data_float;
} convert;
convert.float_data=1.23;
can_buffer[0]=convert.data_byte[0];
can_buffer[1]=convert.data_byte[1];
can_buffer[2]=convert.data_byte[2];
can_buffer[3]=convert.data_byte[3];
LSB/MSB first musst du selbst rausfinden,
Gast
#1119555
Oder mit einem Char-Pointer die Daten verschieben.
Gast
#1120320
HI danke werd ich gleich mal ausprobieren.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.