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,
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.