mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC18F258 float Zahlen über CAN ausgeben


Autor: Jörg Bauer (joerg0046)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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,

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder mit einem Char-Pointer die Daten verschieben.

Autor: joerg0046 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI

danke werd ich gleich mal ausprobieren.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.