-
        

Ergebnis 1 bis 3 von 3

Thema: komische L-Werte in Ultraschall Funktion für ASURO

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    21.10.2010
    Ort
    381**
    Beiträge
    6

    komische L-Werte in Ultraschall Funktion für ASURO

    Anzeige

    Hallo!

    Ich bin neu hier und beschäftige mich zur Zeit mit einem ASURO-Bot mit Ultraschllerweiterung.

    Ich habe dann mal mit nem Osziloskop an den Aus- und Eingängen des Erweiterungsboards gemessen und mir den Code dazu angeschaut um mal zu verstehen wie das den eigentlich funktioniert.

    Habe soweit auch alles verstanden, nur ist mir diese Codestelle hier in der ultrasonics.c aufgefallen, die offenbar den Abstand berechnen soll.

    Code:
    dist = (unsigned int) ((long) ((344L * ((sleeptime * 1000L) / 72L) / 10000L) / 2L));
    Ich programmiere zwar schon etwas länger mit C, trotzdem Frage ich mich, was bei 344L, 1000L und 72L das L bedeutet.

    Weiß das hier jemand? Danke für eure Hilfe[/b]

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Das "L" bedeutet Longint und kennzeichnet den Wert als 32-Bit-Konstante. Damit wird der Kompiler gezwungen die Rechung mit 32-Bit Zwischenwerten auszurechnen und erst am Ende der Rechnung das Ergebniss auf 16 Bit zu kürzen.

    ((long) ((344L * ((sleeptime * 1000L)

    Ohne (long) und L und mit sleeptime != 0 würde ein 16-Bit-Zwischenergebniss schon bei 344*1000 überlaufen. Oder so ähnlich...

    Ganzzahlkonstante

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    21.10.2010
    Ort
    381**
    Beiträge
    6
    Danke erstmal für die schnelle Antwort, es handelt sich also um eine Art Cast.

    MfG
    Darthmina123

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •